// Copyright (C) 2018-2025 Intel Corporation
// SPDX-License-Identifier: Apache-2.0
//

#include <gtest/gtest.h>

#include "common_test_utils/test_common.hpp"
#include "openvino/runtime/system_conf.hpp"
#include "openvino/runtime/threading/cpu_streams_executor_internal.hpp"

using namespace testing;
using namespace ov;
using namespace threading;

namespace {

#if defined(__linux__) || defined(_WIN32)

struct LinuxCpuReserveTestCase {
    int _processors;
    int _sockets;
    std::vector<std::vector<int>> _proc_type_table;
    std::vector<std::vector<int>> _cpu_mapping_table;
    std::vector<std::vector<int>> _streams_info_table;
    std::vector<std::vector<int>> _stream_processors;
    int _cpu_status;
};

class LinuxCpuReserveTests : public ov::test::TestsCommon,
                             public testing::WithParamInterface<std::tuple<LinuxCpuReserveTestCase>> {
public:
    void SetUp() override {
        auto test_data = std::get<0>(GetParam());

        std::vector<std::vector<int>> test_processors;
        std::vector<int> test_numa_node_ids;

        ov::threading::reserve_cpu_by_streams_info(test_data._streams_info_table,
                                                   test_data._sockets,
                                                   test_data._cpu_mapping_table,
                                                   test_data._proc_type_table,
                                                   test_processors,
                                                   test_data._cpu_status);

        ASSERT_EQ(test_data._stream_processors, test_processors);
        for (size_t i = 0; i < test_processors.size(); i++) {
            for (size_t j = 0; j < test_processors[i].size(); j++) {
                ASSERT_EQ(test_data._cpu_mapping_table[test_processors[i][j]][CPU_MAP_USED_FLAG],
                          test_data._cpu_status);
            }
        }
    }
};

LinuxCpuReserveTestCase _2sockets_72cores_hyper_36streams = {
    72,  // param[in]: the number of logical processors
    2,   // param[in]: the number of numa nodes
    // param[in]: proc_type_table, {total processors, number of physical processors, number of Efficient processors,
    // number of hyper threading processors}
    {{72, 36, 0, 0, 36, -1, -1},  // total number of processors: 72, the number of physical/hyper threading processors
                                  // is 36
     {36, 18, 0, 0, 18, 0, 0},    // the number of MAIN_CORE_PROC/HYPER_THREADING_PROC cores on each numa node 0 is 18.
     {36, 18, 0, 0, 18, 1, 1}},   // the number of MAIN_CORE_PROC/HYPER_THREADING_PROC cores on each numa node 1 is 18.
    // param[in]: cpu_mapping_table, {PROCESSOR_ID, SOCKET_ID, CORE_ID, CORE_TYPE, GROUP_ID, Used}
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},    {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
        {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},    {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
        {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},    {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
        {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},    {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
        {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1},    {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1},
        {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1},
        {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1},
        {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1},
        {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1},
        {18, 1, 1, 18, HYPER_THREADING_PROC, 18, -1}, {19, 1, 1, 19, HYPER_THREADING_PROC, 19, -1},
        {20, 1, 1, 20, HYPER_THREADING_PROC, 20, -1}, {21, 1, 1, 21, HYPER_THREADING_PROC, 21, -1},
        {22, 1, 1, 22, HYPER_THREADING_PROC, 22, -1}, {23, 1, 1, 23, HYPER_THREADING_PROC, 23, -1},
        {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1},
        {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1},
        {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1},
        {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1},
        {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1},
        {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1},
        {36, 0, 0, 36, MAIN_CORE_PROC, 36, -1},       {37, 0, 0, 37, MAIN_CORE_PROC, 37, -1},
        {38, 0, 0, 38, MAIN_CORE_PROC, 38, -1},       {39, 0, 0, 39, MAIN_CORE_PROC, 39, -1},
        {40, 0, 0, 40, MAIN_CORE_PROC, 40, -1},       {41, 0, 0, 41, MAIN_CORE_PROC, 41, -1},
        {42, 0, 0, 42, MAIN_CORE_PROC, 42, -1},       {43, 0, 0, 43, MAIN_CORE_PROC, 43, -1},
        {44, 0, 0, 44, MAIN_CORE_PROC, 44, -1},       {45, 0, 0, 45, MAIN_CORE_PROC, 45, -1},
        {46, 0, 0, 46, MAIN_CORE_PROC, 46, -1},       {47, 0, 0, 47, MAIN_CORE_PROC, 47, -1},
        {48, 0, 0, 48, MAIN_CORE_PROC, 48, -1},       {49, 0, 0, 49, MAIN_CORE_PROC, 49, -1},
        {50, 0, 0, 50, MAIN_CORE_PROC, 50, -1},       {51, 0, 0, 51, MAIN_CORE_PROC, 51, -1},
        {52, 0, 0, 52, MAIN_CORE_PROC, 52, -1},       {53, 0, 0, 53, MAIN_CORE_PROC, 53, -1},
        {54, 1, 1, 54, MAIN_CORE_PROC, 54, -1},       {55, 1, 1, 55, MAIN_CORE_PROC, 55, -1},
        {56, 1, 1, 56, MAIN_CORE_PROC, 56, -1},       {57, 1, 1, 57, MAIN_CORE_PROC, 57, -1},
        {58, 1, 1, 58, MAIN_CORE_PROC, 58, -1},       {59, 1, 1, 59, MAIN_CORE_PROC, 59, -1},
        {60, 1, 1, 60, MAIN_CORE_PROC, 60, -1},       {61, 1, 1, 61, MAIN_CORE_PROC, 61, -1},
        {62, 1, 1, 62, MAIN_CORE_PROC, 62, -1},       {63, 1, 1, 63, MAIN_CORE_PROC, 63, -1},
        {64, 1, 1, 64, MAIN_CORE_PROC, 64, -1},       {65, 1, 1, 65, MAIN_CORE_PROC, 65, -1},
        {66, 1, 1, 66, MAIN_CORE_PROC, 66, -1},       {67, 1, 1, 67, MAIN_CORE_PROC, 67, -1},
        {68, 1, 1, 68, MAIN_CORE_PROC, 68, -1},       {69, 1, 1, 69, MAIN_CORE_PROC, 69, -1},
        {70, 1, 1, 70, MAIN_CORE_PROC, 70, -1},       {71, 1, 1, 71, MAIN_CORE_PROC, 71, -1},
    },
    // param[in]: streams_info_table, {NUMBER_OF_STREAMS, PROC_TYPE, THREADS_PER_STREAM}
    {{18, MAIN_CORE_PROC, 1, 0, 0},
     {18, MAIN_CORE_PROC, 1, 1, 1}},  // 36 streams on physical processors, the number of threads per stream is 1.
    // param[out]: stream_processors, the list of processor ids on each stream.
    {
        {36}, {37}, {38}, {39}, {40}, {41}, {42}, {43}, {44}, {45}, {46}, {47}, {48}, {49}, {50}, {51}, {52}, {53},
        {54}, {55}, {56}, {57}, {58}, {59}, {60}, {61}, {62}, {63}, {64}, {65}, {66}, {67}, {68}, {69}, {70}, {71},
    },
    // param[in]: cpu_status, CPU does not change CPU status
    CPU_USED,
};
LinuxCpuReserveTestCase _2sockets_72cores_hyper_2streams = {
    72,
    2,
    {{72, 36, 0, 0, 36, -1, -1}, {36, 18, 0, 0, 18, 0, 0}, {36, 18, 0, 0, 18, 1, 1}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},    {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
        {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},    {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
        {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},    {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
        {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},    {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
        {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1},    {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1},
        {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1},
        {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1},
        {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1},
        {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1},
        {18, 1, 1, 18, HYPER_THREADING_PROC, 18, -1}, {19, 1, 1, 19, HYPER_THREADING_PROC, 19, -1},
        {20, 1, 1, 20, HYPER_THREADING_PROC, 20, -1}, {21, 1, 1, 21, HYPER_THREADING_PROC, 21, -1},
        {22, 1, 1, 22, HYPER_THREADING_PROC, 22, -1}, {23, 1, 1, 23, HYPER_THREADING_PROC, 23, -1},
        {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1},
        {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1},
        {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1},
        {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1},
        {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1},
        {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1},
        {36, 0, 0, 36, MAIN_CORE_PROC, 36, -1},       {37, 0, 0, 37, MAIN_CORE_PROC, 37, -1},
        {38, 0, 0, 38, MAIN_CORE_PROC, 38, -1},       {39, 0, 0, 39, MAIN_CORE_PROC, 39, -1},
        {40, 0, 0, 40, MAIN_CORE_PROC, 40, -1},       {41, 0, 0, 41, MAIN_CORE_PROC, 41, -1},
        {42, 0, 0, 42, MAIN_CORE_PROC, 42, -1},       {43, 0, 0, 43, MAIN_CORE_PROC, 43, -1},
        {44, 0, 0, 44, MAIN_CORE_PROC, 44, -1},       {45, 0, 0, 45, MAIN_CORE_PROC, 45, -1},
        {46, 0, 0, 46, MAIN_CORE_PROC, 46, -1},       {47, 0, 0, 47, MAIN_CORE_PROC, 47, -1},
        {48, 0, 0, 48, MAIN_CORE_PROC, 48, -1},       {49, 0, 0, 49, MAIN_CORE_PROC, 49, -1},
        {50, 0, 0, 50, MAIN_CORE_PROC, 50, -1},       {51, 0, 0, 51, MAIN_CORE_PROC, 51, -1},
        {52, 0, 0, 52, MAIN_CORE_PROC, 52, -1},       {53, 0, 0, 53, MAIN_CORE_PROC, 53, -1},
        {54, 1, 1, 54, MAIN_CORE_PROC, 54, -1},       {55, 1, 1, 55, MAIN_CORE_PROC, 55, -1},
        {56, 1, 1, 56, MAIN_CORE_PROC, 56, -1},       {57, 1, 1, 57, MAIN_CORE_PROC, 57, -1},
        {58, 1, 1, 58, MAIN_CORE_PROC, 58, -1},       {59, 1, 1, 59, MAIN_CORE_PROC, 59, -1},
        {60, 1, 1, 60, MAIN_CORE_PROC, 60, -1},       {61, 1, 1, 61, MAIN_CORE_PROC, 61, -1},
        {62, 1, 1, 62, MAIN_CORE_PROC, 62, -1},       {63, 1, 1, 63, MAIN_CORE_PROC, 63, -1},
        {64, 1, 1, 64, MAIN_CORE_PROC, 64, -1},       {65, 1, 1, 65, MAIN_CORE_PROC, 65, -1},
        {66, 1, 1, 66, MAIN_CORE_PROC, 66, -1},       {67, 1, 1, 67, MAIN_CORE_PROC, 67, -1},
        {68, 1, 1, 68, MAIN_CORE_PROC, 68, -1},       {69, 1, 1, 69, MAIN_CORE_PROC, 69, -1},
        {70, 1, 1, 70, MAIN_CORE_PROC, 70, -1},       {71, 1, 1, 71, MAIN_CORE_PROC, 71, -1},
    },
    {{1, MAIN_CORE_PROC, 18, 0, 0}, {1, MAIN_CORE_PROC, 18, 1, 1}},
    {
        {36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53},
        {54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71},
    },
    NOT_USED,
};
// The first 3 streams are assigned on numa_node=0, the next 3 streams are assigned on numa_node=1,
// the last stream is assigned across the numa_node because there are no enough processors on each numa node
LinuxCpuReserveTestCase _2sockets_72cores_hyper_7streams = {
    72,
    2,
    {{72, 36, 0, 0, 36, -1, -1}, {36, 18, 0, 0, 18, 0, 0}, {36, 18, 0, 0, 18, 1, 1}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},    {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
        {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},    {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
        {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},    {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
        {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},    {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
        {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1},    {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1},
        {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1},
        {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1},
        {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1},
        {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1},
        {18, 1, 1, 18, HYPER_THREADING_PROC, 18, -1}, {19, 1, 1, 19, HYPER_THREADING_PROC, 19, -1},
        {20, 1, 1, 20, HYPER_THREADING_PROC, 20, -1}, {21, 1, 1, 21, HYPER_THREADING_PROC, 21, -1},
        {22, 1, 1, 22, HYPER_THREADING_PROC, 22, -1}, {23, 1, 1, 23, HYPER_THREADING_PROC, 23, -1},
        {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1},
        {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1},
        {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1},
        {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1},
        {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1},
        {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1},
        {36, 0, 0, 36, MAIN_CORE_PROC, 36, -1},       {37, 0, 0, 37, MAIN_CORE_PROC, 37, -1},
        {38, 0, 0, 38, MAIN_CORE_PROC, 38, -1},       {39, 0, 0, 39, MAIN_CORE_PROC, 39, -1},
        {40, 0, 0, 40, MAIN_CORE_PROC, 40, -1},       {41, 0, 0, 41, MAIN_CORE_PROC, 41, -1},
        {42, 0, 0, 42, MAIN_CORE_PROC, 42, -1},       {43, 0, 0, 43, MAIN_CORE_PROC, 43, -1},
        {44, 0, 0, 44, MAIN_CORE_PROC, 44, -1},       {45, 0, 0, 45, MAIN_CORE_PROC, 45, -1},
        {46, 0, 0, 46, MAIN_CORE_PROC, 46, -1},       {47, 0, 0, 47, MAIN_CORE_PROC, 47, -1},
        {48, 0, 0, 48, MAIN_CORE_PROC, 48, -1},       {49, 0, 0, 49, MAIN_CORE_PROC, 49, -1},
        {50, 0, 0, 50, MAIN_CORE_PROC, 50, -1},       {51, 0, 0, 51, MAIN_CORE_PROC, 51, -1},
        {52, 0, 0, 52, MAIN_CORE_PROC, 52, -1},       {53, 0, 0, 53, MAIN_CORE_PROC, 53, -1},
        {54, 1, 1, 54, MAIN_CORE_PROC, 54, -1},       {55, 1, 1, 55, MAIN_CORE_PROC, 55, -1},
        {56, 1, 1, 56, MAIN_CORE_PROC, 56, -1},       {57, 1, 1, 57, MAIN_CORE_PROC, 57, -1},
        {58, 1, 1, 58, MAIN_CORE_PROC, 58, -1},       {59, 1, 1, 59, MAIN_CORE_PROC, 59, -1},
        {60, 1, 1, 60, MAIN_CORE_PROC, 60, -1},       {61, 1, 1, 61, MAIN_CORE_PROC, 61, -1},
        {62, 1, 1, 62, MAIN_CORE_PROC, 62, -1},       {63, 1, 1, 63, MAIN_CORE_PROC, 63, -1},
        {64, 1, 1, 64, MAIN_CORE_PROC, 64, -1},       {65, 1, 1, 65, MAIN_CORE_PROC, 65, -1},
        {66, 1, 1, 66, MAIN_CORE_PROC, 66, -1},       {67, 1, 1, 67, MAIN_CORE_PROC, 67, -1},
        {68, 1, 1, 68, MAIN_CORE_PROC, 68, -1},       {69, 1, 1, 69, MAIN_CORE_PROC, 69, -1},
        {70, 1, 1, 70, MAIN_CORE_PROC, 70, -1},       {71, 1, 1, 71, MAIN_CORE_PROC, 71, -1},
    },
    {{3, MAIN_CORE_PROC, 5, 0, 0},
     {3, MAIN_CORE_PROC, 5, 1, 1},
     {1, ALL_PROC, 5, -1, -1},
     {0, MAIN_CORE_PROC, 3, 0, 0},
     {0, MAIN_CORE_PROC, 2, 1, 1}},
    {
        {36, 37, 38, 39, 40},
        {41, 42, 43, 44, 45},
        {46, 47, 48, 49, 50},
        {54, 55, 56, 57, 58},
        {59, 60, 61, 62, 63},
        {64, 65, 66, 67, 68},
        {51, 52, 53, 69, 70},
    },
    NOT_USED,
};
LinuxCpuReserveTestCase _2sockets_72cores_hyper_8streams = {
    72,
    2,
    {{72, 36, 0, 0, 36, -1, -1}, {36, 18, 0, 0, 18, 0, 0}, {36, 18, 0, 0, 18, 1, 1}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},    {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
        {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},    {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
        {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},    {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
        {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},    {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
        {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1},    {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1},
        {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1},
        {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1},
        {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1},
        {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1},
        {18, 1, 1, 18, HYPER_THREADING_PROC, 18, -1}, {19, 1, 1, 19, HYPER_THREADING_PROC, 19, -1},
        {20, 1, 1, 20, HYPER_THREADING_PROC, 20, -1}, {21, 1, 1, 21, HYPER_THREADING_PROC, 21, -1},
        {22, 1, 1, 22, HYPER_THREADING_PROC, 22, -1}, {23, 1, 1, 23, HYPER_THREADING_PROC, 23, -1},
        {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1},
        {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1},
        {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1},
        {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1},
        {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1},
        {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1},
        {36, 0, 0, 36, MAIN_CORE_PROC, 36, -1},       {37, 0, 0, 37, MAIN_CORE_PROC, 37, -1},
        {38, 0, 0, 38, MAIN_CORE_PROC, 38, -1},       {39, 0, 0, 39, MAIN_CORE_PROC, 39, -1},
        {40, 0, 0, 40, MAIN_CORE_PROC, 40, -1},       {41, 0, 0, 41, MAIN_CORE_PROC, 41, -1},
        {42, 0, 0, 42, MAIN_CORE_PROC, 42, -1},       {43, 0, 0, 43, MAIN_CORE_PROC, 43, -1},
        {44, 0, 0, 44, MAIN_CORE_PROC, 44, -1},       {45, 0, 0, 45, MAIN_CORE_PROC, 45, -1},
        {46, 0, 0, 46, MAIN_CORE_PROC, 46, -1},       {47, 0, 0, 47, MAIN_CORE_PROC, 47, -1},
        {48, 0, 0, 48, MAIN_CORE_PROC, 48, -1},       {49, 0, 0, 49, MAIN_CORE_PROC, 49, -1},
        {50, 0, 0, 50, MAIN_CORE_PROC, 50, -1},       {51, 0, 0, 51, MAIN_CORE_PROC, 51, -1},
        {52, 0, 0, 52, MAIN_CORE_PROC, 52, -1},       {53, 0, 0, 53, MAIN_CORE_PROC, 53, -1},
        {54, 1, 1, 54, MAIN_CORE_PROC, 54, -1},       {55, 1, 1, 55, MAIN_CORE_PROC, 55, -1},
        {56, 1, 1, 56, MAIN_CORE_PROC, 56, -1},       {57, 1, 1, 57, MAIN_CORE_PROC, 57, -1},
        {58, 1, 1, 58, MAIN_CORE_PROC, 58, -1},       {59, 1, 1, 59, MAIN_CORE_PROC, 59, -1},
        {60, 1, 1, 60, MAIN_CORE_PROC, 60, -1},       {61, 1, 1, 61, MAIN_CORE_PROC, 61, -1},
        {62, 1, 1, 62, MAIN_CORE_PROC, 62, -1},       {63, 1, 1, 63, MAIN_CORE_PROC, 63, -1},
        {64, 1, 1, 64, MAIN_CORE_PROC, 64, -1},       {65, 1, 1, 65, MAIN_CORE_PROC, 65, -1},
        {66, 1, 1, 66, MAIN_CORE_PROC, 66, -1},       {67, 1, 1, 67, MAIN_CORE_PROC, 67, -1},
        {68, 1, 1, 68, MAIN_CORE_PROC, 68, -1},       {69, 1, 1, 69, MAIN_CORE_PROC, 69, -1},
        {70, 1, 1, 70, MAIN_CORE_PROC, 70, -1},       {71, 1, 1, 71, MAIN_CORE_PROC, 71, -1},
    },
    {{4, MAIN_CORE_PROC, 4, 0, 0}, {4, MAIN_CORE_PROC, 4, 1, 1}},
    {
        {36, 37, 38, 39},
        {40, 41, 42, 43},
        {44, 45, 46, 47},
        {48, 49, 50, 51},
        {54, 55, 56, 57},
        {58, 59, 60, 61},
        {62, 63, 64, 65},
        {66, 67, 68, 69},
    },
    NOT_USED,
};
LinuxCpuReserveTestCase _2sockets_72cores_hyper_9streams = {
    72,
    2,
    {{72, 36, 0, 0, 36, -1, -1}, {36, 18, 0, 0, 18, 0, 0}, {36, 18, 0, 0, 18, 1, 1}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},    {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
        {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},    {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
        {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},    {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
        {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},    {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
        {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1},    {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1},
        {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1},
        {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1},
        {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1},
        {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1},
        {18, 1, 1, 18, HYPER_THREADING_PROC, 18, -1}, {19, 1, 1, 19, HYPER_THREADING_PROC, 19, -1},
        {20, 1, 1, 20, HYPER_THREADING_PROC, 20, -1}, {21, 1, 1, 21, HYPER_THREADING_PROC, 21, -1},
        {22, 1, 1, 22, HYPER_THREADING_PROC, 22, -1}, {23, 1, 1, 23, HYPER_THREADING_PROC, 23, -1},
        {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1},
        {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1},
        {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1},
        {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1},
        {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1},
        {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1},
        {36, 0, 0, 36, MAIN_CORE_PROC, 0, -1},        {37, 0, 0, 37, MAIN_CORE_PROC, 1, -1},
        {38, 0, 0, 38, MAIN_CORE_PROC, 2, -1},        {39, 0, 0, 39, MAIN_CORE_PROC, 3, -1},
        {40, 0, 0, 40, MAIN_CORE_PROC, 4, -1},        {41, 0, 0, 41, MAIN_CORE_PROC, 5, -1},
        {42, 0, 0, 42, MAIN_CORE_PROC, 6, -1},        {43, 0, 0, 43, MAIN_CORE_PROC, 7, -1},
        {44, 0, 0, 44, MAIN_CORE_PROC, 8, -1},        {45, 0, 0, 45, MAIN_CORE_PROC, 9, -1},
        {46, 0, 0, 46, MAIN_CORE_PROC, 10, -1},       {47, 0, 0, 47, MAIN_CORE_PROC, 11, -1},
        {48, 0, 0, 48, MAIN_CORE_PROC, 12, -1},       {49, 0, 0, 49, MAIN_CORE_PROC, 13, -1},
        {50, 0, 0, 50, MAIN_CORE_PROC, 14, -1},       {51, 0, 0, 51, MAIN_CORE_PROC, 15, -1},
        {52, 0, 0, 52, MAIN_CORE_PROC, 16, -1},       {53, 0, 0, 53, MAIN_CORE_PROC, 17, -1},
        {54, 1, 1, 54, MAIN_CORE_PROC, 18, -1},       {55, 1, 1, 55, MAIN_CORE_PROC, 19, -1},
        {56, 1, 1, 56, MAIN_CORE_PROC, 20, -1},       {57, 1, 1, 57, MAIN_CORE_PROC, 21, -1},
        {58, 1, 1, 58, MAIN_CORE_PROC, 22, -1},       {59, 1, 1, 59, MAIN_CORE_PROC, 23, -1},
        {60, 1, 1, 60, MAIN_CORE_PROC, 24, -1},       {61, 1, 1, 61, MAIN_CORE_PROC, 25, -1},
        {62, 1, 1, 62, MAIN_CORE_PROC, 26, -1},       {63, 1, 1, 63, MAIN_CORE_PROC, 27, -1},
        {64, 1, 1, 64, MAIN_CORE_PROC, 28, -1},       {65, 1, 1, 65, MAIN_CORE_PROC, 29, -1},
        {66, 1, 1, 66, MAIN_CORE_PROC, 30, -1},       {67, 1, 1, 67, MAIN_CORE_PROC, 31, -1},
        {68, 1, 1, 68, MAIN_CORE_PROC, 32, -1},       {69, 1, 1, 69, MAIN_CORE_PROC, 33, -1},
        {70, 1, 1, 70, MAIN_CORE_PROC, 34, -1},       {71, 1, 1, 71, MAIN_CORE_PROC, 35, -1},
    },
    {{4, MAIN_CORE_PROC, 4, 0, 0},
     {4, MAIN_CORE_PROC, 4, 1, 1},
     {1, ALL_PROC, 4, -1, -1},
     {0, MAIN_CORE_PROC, 2, 0, 0},
     {0, MAIN_CORE_PROC, 2, 1, 1}},
    {
        {36, 37, 38, 39},
        {40, 41, 42, 43},
        {44, 45, 46, 47},
        {48, 49, 50, 51},
        {54, 55, 56, 57},
        {58, 59, 60, 61},
        {62, 63, 64, 65},
        {66, 67, 68, 69},
        {52, 53, 70, 71},
    },
    NOT_USED,
};
LinuxCpuReserveTestCase _2sockets_72cores_hyper_3streams = {
    72,
    2,
    {{72, 36, 0, 0, 36, -1, -1}, {36, 18, 0, 0, 18, 0, 0}, {36, 18, 0, 0, 18, 1, 1}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},    {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
        {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},    {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
        {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},    {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
        {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},    {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
        {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1},    {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1},
        {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1},
        {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1},
        {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1},
        {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1},
        {18, 1, 1, 18, HYPER_THREADING_PROC, 18, -1}, {19, 1, 1, 19, HYPER_THREADING_PROC, 19, -1},
        {20, 1, 1, 20, HYPER_THREADING_PROC, 20, -1}, {21, 1, 1, 21, HYPER_THREADING_PROC, 21, -1},
        {22, 1, 1, 22, HYPER_THREADING_PROC, 22, -1}, {23, 1, 1, 23, HYPER_THREADING_PROC, 23, -1},
        {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1},
        {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1},
        {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1},
        {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1},
        {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1},
        {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1},
        {36, 0, 0, 36, MAIN_CORE_PROC, 0, -1},        {37, 0, 0, 37, MAIN_CORE_PROC, 1, -1},
        {38, 0, 0, 38, MAIN_CORE_PROC, 2, -1},        {39, 0, 0, 39, MAIN_CORE_PROC, 3, -1},
        {40, 0, 0, 40, MAIN_CORE_PROC, 4, -1},        {41, 0, 0, 41, MAIN_CORE_PROC, 5, -1},
        {42, 0, 0, 42, MAIN_CORE_PROC, 6, -1},        {43, 0, 0, 43, MAIN_CORE_PROC, 7, -1},
        {44, 0, 0, 44, MAIN_CORE_PROC, 8, -1},        {45, 0, 0, 45, MAIN_CORE_PROC, 9, -1},
        {46, 0, 0, 46, MAIN_CORE_PROC, 10, -1},       {47, 0, 0, 47, MAIN_CORE_PROC, 11, -1},
        {48, 0, 0, 48, MAIN_CORE_PROC, 12, -1},       {49, 0, 0, 49, MAIN_CORE_PROC, 13, -1},
        {50, 0, 0, 50, MAIN_CORE_PROC, 14, -1},       {51, 0, 0, 51, MAIN_CORE_PROC, 15, -1},
        {52, 0, 0, 52, MAIN_CORE_PROC, 16, -1},       {53, 0, 0, 53, MAIN_CORE_PROC, 17, -1},
        {54, 1, 1, 54, MAIN_CORE_PROC, 18, -1},       {55, 1, 1, 55, MAIN_CORE_PROC, 19, -1},
        {56, 1, 1, 56, MAIN_CORE_PROC, 20, -1},       {57, 1, 1, 57, MAIN_CORE_PROC, 21, -1},
        {58, 1, 1, 58, MAIN_CORE_PROC, 22, -1},       {59, 1, 1, 59, MAIN_CORE_PROC, 23, -1},
        {60, 1, 1, 60, MAIN_CORE_PROC, 24, -1},       {61, 1, 1, 61, MAIN_CORE_PROC, 25, -1},
        {62, 1, 1, 62, MAIN_CORE_PROC, 26, -1},       {63, 1, 1, 63, MAIN_CORE_PROC, 27, -1},
        {64, 1, 1, 64, MAIN_CORE_PROC, 28, -1},       {65, 1, 1, 65, MAIN_CORE_PROC, 29, -1},
        {66, 1, 1, 66, MAIN_CORE_PROC, 30, -1},       {67, 1, 1, 67, MAIN_CORE_PROC, 31, -1},
        {68, 1, 1, 68, MAIN_CORE_PROC, 32, -1},       {69, 1, 1, 69, MAIN_CORE_PROC, 33, -1},
        {70, 1, 1, 70, MAIN_CORE_PROC, 34, -1},       {71, 1, 1, 71, MAIN_CORE_PROC, 35, -1},
    },
    {{3, MAIN_CORE_PROC, 4, 0, 0}},
    {
        {36, 37, 38, 39},
        {40, 41, 42, 43},
        {44, 45, 46, 47},
    },
    NOT_USED,
};
LinuxCpuReserveTestCase _2sockets_72cores_hyper_1streams = {
    72,
    2,
    {{72, 36, 0, 0, 36, -1, -1}, {36, 18, 0, 0, 18, 0, 0}, {36, 18, 0, 0, 18, 1, 1}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},    {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
        {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},    {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
        {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},    {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
        {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},    {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
        {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1},    {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1},
        {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1},
        {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1},
        {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1},
        {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1},
        {18, 1, 1, 18, HYPER_THREADING_PROC, 18, -1}, {19, 1, 1, 19, HYPER_THREADING_PROC, 19, -1},
        {20, 1, 1, 20, HYPER_THREADING_PROC, 20, -1}, {21, 1, 1, 21, HYPER_THREADING_PROC, 21, -1},
        {22, 1, 1, 22, HYPER_THREADING_PROC, 22, -1}, {23, 1, 1, 23, HYPER_THREADING_PROC, 23, -1},
        {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1},
        {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1},
        {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1},
        {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1},
        {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1},
        {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1},
        {36, 0, 0, 36, MAIN_CORE_PROC, 0, -1},        {37, 0, 0, 37, MAIN_CORE_PROC, 1, -1},
        {38, 0, 0, 38, MAIN_CORE_PROC, 2, -1},        {39, 0, 0, 39, MAIN_CORE_PROC, 3, -1},
        {40, 0, 0, 40, MAIN_CORE_PROC, 4, -1},        {41, 0, 0, 41, MAIN_CORE_PROC, 5, -1},
        {42, 0, 0, 42, MAIN_CORE_PROC, 6, -1},        {43, 0, 0, 43, MAIN_CORE_PROC, 7, -1},
        {44, 0, 0, 44, MAIN_CORE_PROC, 8, -1},        {45, 0, 0, 45, MAIN_CORE_PROC, 9, -1},
        {46, 0, 0, 46, MAIN_CORE_PROC, 10, -1},       {47, 0, 0, 47, MAIN_CORE_PROC, 11, -1},
        {48, 0, 0, 48, MAIN_CORE_PROC, 12, -1},       {49, 0, 0, 49, MAIN_CORE_PROC, 13, -1},
        {50, 0, 0, 50, MAIN_CORE_PROC, 14, -1},       {51, 0, 0, 51, MAIN_CORE_PROC, 15, -1},
        {52, 0, 0, 52, MAIN_CORE_PROC, 16, -1},       {53, 0, 0, 53, MAIN_CORE_PROC, 17, -1},
        {54, 1, 1, 54, MAIN_CORE_PROC, 18, -1},       {55, 1, 1, 55, MAIN_CORE_PROC, 19, -1},
        {56, 1, 1, 56, MAIN_CORE_PROC, 20, -1},       {57, 1, 1, 57, MAIN_CORE_PROC, 21, -1},
        {58, 1, 1, 58, MAIN_CORE_PROC, 22, -1},       {59, 1, 1, 59, MAIN_CORE_PROC, 23, -1},
        {60, 1, 1, 60, MAIN_CORE_PROC, 24, -1},       {61, 1, 1, 61, MAIN_CORE_PROC, 25, -1},
        {62, 1, 1, 62, MAIN_CORE_PROC, 26, -1},       {63, 1, 1, 63, MAIN_CORE_PROC, 27, -1},
        {64, 1, 1, 64, MAIN_CORE_PROC, 28, -1},       {65, 1, 1, 65, MAIN_CORE_PROC, 29, -1},
        {66, 1, 1, 66, MAIN_CORE_PROC, 30, -1},       {67, 1, 1, 67, MAIN_CORE_PROC, 31, -1},
        {68, 1, 1, 68, MAIN_CORE_PROC, 32, -1},       {69, 1, 1, 69, MAIN_CORE_PROC, 33, -1},
        {70, 1, 1, 70, MAIN_CORE_PROC, 34, -1},       {71, 1, 1, 71, MAIN_CORE_PROC, 35, -1},
    },
    {{1, MAIN_CORE_PROC, 36, -1, -1}, {-1, MAIN_CORE_PROC, 18, 0, 0}, {-1, MAIN_CORE_PROC, 18, 1, 1}},
    {
        {36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53},
        {54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71},
    },
    NOT_USED,
};
// The first four streams are on numa_node=0, and the fifth stream is assigned to numa_node=1, because there are only 2
// processors left in numa_node=0, which is not enough for one stream
LinuxCpuReserveTestCase _2sockets_72cores_hyper_5streams = {
    72,
    2,
    {{72, 36, 0, 0, 36, -1, -1}, {36, 18, 0, 0, 18, 0, 0}, {36, 18, 0, 0, 18, 1, 1}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},    {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
        {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},    {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
        {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},    {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
        {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},    {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
        {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1},    {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1},
        {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1},
        {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1},
        {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1},
        {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1},
        {18, 1, 1, 18, HYPER_THREADING_PROC, 18, -1}, {19, 1, 1, 19, HYPER_THREADING_PROC, 19, -1},
        {20, 1, 1, 20, HYPER_THREADING_PROC, 20, -1}, {21, 1, 1, 21, HYPER_THREADING_PROC, 21, -1},
        {22, 1, 1, 22, HYPER_THREADING_PROC, 22, -1}, {23, 1, 1, 23, HYPER_THREADING_PROC, 23, -1},
        {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1},
        {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1},
        {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1},
        {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1},
        {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1},
        {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1},
        {36, 0, 0, 36, MAIN_CORE_PROC, 0, -1},        {37, 0, 0, 37, MAIN_CORE_PROC, 1, -1},
        {38, 0, 0, 38, MAIN_CORE_PROC, 2, -1},        {39, 0, 0, 39, MAIN_CORE_PROC, 3, -1},
        {40, 0, 0, 40, MAIN_CORE_PROC, 4, -1},        {41, 0, 0, 41, MAIN_CORE_PROC, 5, -1},
        {42, 0, 0, 42, MAIN_CORE_PROC, 6, -1},        {43, 0, 0, 43, MAIN_CORE_PROC, 7, -1},
        {44, 0, 0, 44, MAIN_CORE_PROC, 8, -1},        {45, 0, 0, 45, MAIN_CORE_PROC, 9, -1},
        {46, 0, 0, 46, MAIN_CORE_PROC, 10, -1},       {47, 0, 0, 47, MAIN_CORE_PROC, 11, -1},
        {48, 0, 0, 48, MAIN_CORE_PROC, 12, -1},       {49, 0, 0, 49, MAIN_CORE_PROC, 13, -1},
        {50, 0, 0, 50, MAIN_CORE_PROC, 14, -1},       {51, 0, 0, 51, MAIN_CORE_PROC, 15, -1},
        {52, 0, 0, 52, MAIN_CORE_PROC, 16, -1},       {53, 0, 0, 53, MAIN_CORE_PROC, 17, -1},
        {54, 1, 1, 54, MAIN_CORE_PROC, 18, -1},       {55, 1, 1, 55, MAIN_CORE_PROC, 19, -1},
        {56, 1, 1, 56, MAIN_CORE_PROC, 20, -1},       {57, 1, 1, 57, MAIN_CORE_PROC, 21, -1},
        {58, 1, 1, 58, MAIN_CORE_PROC, 22, -1},       {59, 1, 1, 59, MAIN_CORE_PROC, 23, -1},
        {60, 1, 1, 60, MAIN_CORE_PROC, 24, -1},       {61, 1, 1, 61, MAIN_CORE_PROC, 25, -1},
        {62, 1, 1, 62, MAIN_CORE_PROC, 26, -1},       {63, 1, 1, 63, MAIN_CORE_PROC, 27, -1},
        {64, 1, 1, 64, MAIN_CORE_PROC, 28, -1},       {65, 1, 1, 65, MAIN_CORE_PROC, 29, -1},
        {66, 1, 1, 66, MAIN_CORE_PROC, 30, -1},       {67, 1, 1, 67, MAIN_CORE_PROC, 31, -1},
        {68, 1, 1, 68, MAIN_CORE_PROC, 32, -1},       {69, 1, 1, 69, MAIN_CORE_PROC, 33, -1},
        {70, 1, 1, 70, MAIN_CORE_PROC, 34, -1},       {71, 1, 1, 71, MAIN_CORE_PROC, 35, -1},
    },
    {{4, MAIN_CORE_PROC, 4, 0, 0}, {1, MAIN_CORE_PROC, 4, 1, 1}},
    {
        {36, 37, 38, 39},  // numa_node = 0
        {40, 41, 42, 43},  // numa_node = 0
        {44, 45, 46, 47},  // numa_node = 0
        {48, 49, 50, 51},  // numa_node = 0
        {54, 55, 56, 57},  // numa_node = 1
    },
    NOT_USED,
};
// The method of plugin reserve cpu: assigned the streams on the numa_node with more cpu resources
LinuxCpuReserveTestCase _2sockets_72cores_hyper_3streams_plugin_reserve = {
    72,
    2,
    {{72, 36, 0, 0, 36, -1, -1}, {36, 18, 0, 0, 18, 0, 0}, {36, 18, 0, 0, 18, 1, 1}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},    {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
        {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},    {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
        {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},    {5, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
        {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},    {7, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
        {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1},    {9, 0, 0, 9, HYPER_THREADING_PROC, 9, -1},
        {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 0, 0, 11, HYPER_THREADING_PROC, 11, -1},
        {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 0, 0, 13, HYPER_THREADING_PROC, 13, -1},
        {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 0, 0, 15, HYPER_THREADING_PROC, 15, -1},
        {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 0, 0, 17, HYPER_THREADING_PROC, 17, -1},
        {18, 1, 1, 18, HYPER_THREADING_PROC, 18, -1}, {19, 1, 1, 19, HYPER_THREADING_PROC, 19, -1},
        {20, 1, 1, 20, HYPER_THREADING_PROC, 20, -1}, {21, 1, 1, 21, HYPER_THREADING_PROC, 21, -1},
        {22, 1, 1, 22, HYPER_THREADING_PROC, 22, -1}, {23, 1, 1, 23, HYPER_THREADING_PROC, 23, -1},
        {24, 1, 1, 24, HYPER_THREADING_PROC, 24, -1}, {25, 1, 1, 25, HYPER_THREADING_PROC, 25, -1},
        {26, 1, 1, 26, HYPER_THREADING_PROC, 26, -1}, {27, 1, 1, 27, HYPER_THREADING_PROC, 27, -1},
        {28, 1, 1, 28, HYPER_THREADING_PROC, 28, -1}, {29, 1, 1, 29, HYPER_THREADING_PROC, 29, -1},
        {30, 1, 1, 30, HYPER_THREADING_PROC, 30, -1}, {31, 1, 1, 31, HYPER_THREADING_PROC, 31, -1},
        {32, 1, 1, 32, HYPER_THREADING_PROC, 32, -1}, {33, 1, 1, 33, HYPER_THREADING_PROC, 33, -1},
        {34, 1, 1, 34, HYPER_THREADING_PROC, 34, -1}, {35, 1, 1, 35, HYPER_THREADING_PROC, 35, -1},
        {36, 0, 0, 36, MAIN_CORE_PROC, 0, -1},        {37, 0, 0, 37, MAIN_CORE_PROC, 1, -1},
        {38, 0, 0, 38, MAIN_CORE_PROC, 2, -1},        {39, 0, 0, 39, MAIN_CORE_PROC, 3, -1},
        {40, 0, 0, 40, MAIN_CORE_PROC, 4, -1},        {41, 0, 0, 41, MAIN_CORE_PROC, 5, -1},
        {42, 0, 0, 42, MAIN_CORE_PROC, 6, -1},        {43, 0, 0, 43, MAIN_CORE_PROC, 7, -1},
        {44, 0, 0, 44, MAIN_CORE_PROC, 8, -1},        {45, 0, 0, 45, MAIN_CORE_PROC, 9, -1},
        {46, 0, 0, 46, MAIN_CORE_PROC, 10, -1},       {47, 0, 0, 47, MAIN_CORE_PROC, 11, -1},
        {48, 0, 0, 48, MAIN_CORE_PROC, 12, -1},       {49, 0, 0, 49, MAIN_CORE_PROC, 13, -1},
        {50, 0, 0, 50, MAIN_CORE_PROC, 14, -1},       {51, 0, 0, 51, MAIN_CORE_PROC, 15, -1},
        {52, 0, 0, 52, MAIN_CORE_PROC, 16, -1},       {53, 0, 0, 53, MAIN_CORE_PROC, 17, -1},
        {54, 1, 1, 54, MAIN_CORE_PROC, 18, -1},       {55, 1, 1, 55, MAIN_CORE_PROC, 19, -1},
        {56, 1, 1, 56, MAIN_CORE_PROC, 20, -1},       {57, 1, 1, 57, MAIN_CORE_PROC, 21, -1},
        {58, 1, 1, 58, MAIN_CORE_PROC, 22, -1},       {59, 1, 1, 59, MAIN_CORE_PROC, 23, -1},
        {60, 1, 1, 60, MAIN_CORE_PROC, 24, -1},       {61, 1, 1, 61, MAIN_CORE_PROC, 25, -1},
        {62, 1, 1, 62, MAIN_CORE_PROC, 26, -1},       {63, 1, 1, 63, MAIN_CORE_PROC, 27, -1},
        {64, 1, 1, 64, MAIN_CORE_PROC, 28, -1},       {65, 1, 1, 65, MAIN_CORE_PROC, 29, -1},
        {66, 1, 1, 66, MAIN_CORE_PROC, 30, -1},       {67, 1, 1, 67, MAIN_CORE_PROC, 31, -1},
        {68, 1, 1, 68, MAIN_CORE_PROC, 32, -1},       {69, 1, 1, 69, MAIN_CORE_PROC, 33, -1},
        {70, 1, 1, 70, MAIN_CORE_PROC, 34, -1},       {71, 1, 1, 71, MAIN_CORE_PROC, 35, -1},
    },
    {{3, MAIN_CORE_PROC, 4, 1, 1}},
    {
        {54, 55, 56, 57},  // numa_node = 1
        {58, 59, 60, 61},  // numa_node = 1
        {62, 63, 64, 65},  // numa_node = 1
    },
    CPU_USED,
};
LinuxCpuReserveTestCase _2sockets_104cores_2streams = {
    208,
    2,
    {{208, 104, 0, 0, 104, -1, -1},
     {52, 26, 0, 0, 26, 0, 0},
     {52, 26, 0, 0, 26, 1, 0},
     {52, 26, 0, 0, 26, 2, 1},
     {52, 26, 0, 0, 26, 3, 1}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},       {1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
        {2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},       {3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
        {4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},       {5, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
        {6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},       {7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
        {8, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},       {9, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
        {10, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},      {11, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
        {12, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},      {13, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
        {14, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},      {15, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
        {16, 0, 0, 8, HYPER_THREADING_PROC, 8, -1},      {17, 0, 0, 8, MAIN_CORE_PROC, 8, -1},
        {18, 0, 0, 9, HYPER_THREADING_PROC, 9, -1},      {19, 0, 0, 9, MAIN_CORE_PROC, 9, -1},
        {20, 0, 0, 10, HYPER_THREADING_PROC, 10, -1},    {21, 0, 0, 10, MAIN_CORE_PROC, 10, -1},
        {22, 0, 0, 11, HYPER_THREADING_PROC, 11, -1},    {23, 0, 0, 11, MAIN_CORE_PROC, 11, -1},
        {24, 0, 0, 12, HYPER_THREADING_PROC, 12, -1},    {25, 0, 0, 12, MAIN_CORE_PROC, 12, -1},
        {26, 1, 0, 13, HYPER_THREADING_PROC, 13, -1},    {27, 1, 0, 13, MAIN_CORE_PROC, 13, -1},
        {28, 1, 0, 14, HYPER_THREADING_PROC, 14, -1},    {29, 1, 0, 14, MAIN_CORE_PROC, 14, -1},
        {30, 1, 0, 15, HYPER_THREADING_PROC, 15, -1},    {31, 1, 0, 15, MAIN_CORE_PROC, 15, -1},
        {32, 1, 0, 16, HYPER_THREADING_PROC, 16, -1},    {33, 1, 0, 16, MAIN_CORE_PROC, 16, -1},
        {34, 1, 0, 17, HYPER_THREADING_PROC, 17, -1},    {35, 1, 0, 17, MAIN_CORE_PROC, 17, -1},
        {36, 1, 0, 18, HYPER_THREADING_PROC, 18, -1},    {37, 1, 0, 18, MAIN_CORE_PROC, 18, -1},
        {38, 1, 0, 19, HYPER_THREADING_PROC, 19, -1},    {39, 1, 0, 19, MAIN_CORE_PROC, 19, -1},
        {40, 1, 0, 20, HYPER_THREADING_PROC, 20, -1},    {41, 1, 0, 20, MAIN_CORE_PROC, 20, -1},
        {42, 1, 0, 21, HYPER_THREADING_PROC, 21, -1},    {43, 1, 0, 21, MAIN_CORE_PROC, 21, -1},
        {44, 1, 0, 22, HYPER_THREADING_PROC, 22, -1},    {45, 1, 0, 22, MAIN_CORE_PROC, 22, -1},
        {46, 1, 0, 23, HYPER_THREADING_PROC, 23, -1},    {47, 1, 0, 23, MAIN_CORE_PROC, 23, -1},
        {48, 1, 0, 24, HYPER_THREADING_PROC, 24, -1},    {49, 1, 0, 24, MAIN_CORE_PROC, 24, -1},
        {50, 1, 0, 25, HYPER_THREADING_PROC, 25, -1},    {51, 1, 0, 25, MAIN_CORE_PROC, 25, -1},
        {52, 2, 1, 26, HYPER_THREADING_PROC, 26, -1},    {53, 2, 1, 26, MAIN_CORE_PROC, 26, -1},
        {54, 2, 1, 27, HYPER_THREADING_PROC, 27, -1},    {55, 2, 1, 27, MAIN_CORE_PROC, 27, -1},
        {56, 2, 1, 28, HYPER_THREADING_PROC, 28, -1},    {57, 2, 1, 28, MAIN_CORE_PROC, 28, -1},
        {58, 2, 1, 29, HYPER_THREADING_PROC, 29, -1},    {59, 2, 1, 29, MAIN_CORE_PROC, 29, -1},
        {60, 2, 1, 30, HYPER_THREADING_PROC, 30, -1},    {61, 2, 1, 30, MAIN_CORE_PROC, 30, -1},
        {62, 2, 1, 31, HYPER_THREADING_PROC, 31, -1},    {63, 2, 1, 31, MAIN_CORE_PROC, 31, -1},
        {64, 2, 1, 32, HYPER_THREADING_PROC, 32, -1},    {65, 2, 1, 32, MAIN_CORE_PROC, 32, -1},
        {66, 2, 1, 33, HYPER_THREADING_PROC, 33, -1},    {67, 2, 1, 33, MAIN_CORE_PROC, 33, -1},
        {68, 2, 1, 34, HYPER_THREADING_PROC, 34, -1},    {69, 2, 1, 34, MAIN_CORE_PROC, 34, -1},
        {70, 2, 1, 35, HYPER_THREADING_PROC, 35, -1},    {71, 2, 1, 35, MAIN_CORE_PROC, 35, -1},
        {72, 2, 1, 36, HYPER_THREADING_PROC, 36, -1},    {73, 2, 1, 36, MAIN_CORE_PROC, 36, -1},
        {74, 2, 1, 37, HYPER_THREADING_PROC, 37, -1},    {75, 2, 1, 37, MAIN_CORE_PROC, 37, -1},
        {76, 2, 1, 38, HYPER_THREADING_PROC, 38, -1},    {77, 2, 1, 38, MAIN_CORE_PROC, 38, -1},
        {78, 3, 1, 39, HYPER_THREADING_PROC, 39, -1},    {79, 3, 1, 39, MAIN_CORE_PROC, 39, -1},
        {80, 3, 1, 40, HYPER_THREADING_PROC, 40, -1},    {81, 3, 1, 40, MAIN_CORE_PROC, 40, -1},
        {82, 3, 1, 41, HYPER_THREADING_PROC, 41, -1},    {83, 3, 1, 41, MAIN_CORE_PROC, 41, -1},
        {84, 3, 1, 42, HYPER_THREADING_PROC, 42, -1},    {85, 3, 1, 42, MAIN_CORE_PROC, 42, -1},
        {86, 3, 1, 43, HYPER_THREADING_PROC, 43, -1},    {87, 3, 1, 43, MAIN_CORE_PROC, 43, -1},
        {88, 3, 1, 44, HYPER_THREADING_PROC, 44, -1},    {89, 3, 1, 44, MAIN_CORE_PROC, 44, -1},
        {90, 3, 1, 45, HYPER_THREADING_PROC, 45, -1},    {91, 3, 1, 45, MAIN_CORE_PROC, 45, -1},
        {92, 3, 1, 46, HYPER_THREADING_PROC, 46, -1},    {93, 3, 1, 46, MAIN_CORE_PROC, 46, -1},
        {94, 3, 1, 47, HYPER_THREADING_PROC, 47, -1},    {95, 3, 1, 47, MAIN_CORE_PROC, 47, -1},
        {96, 3, 1, 48, HYPER_THREADING_PROC, 48, -1},    {97, 3, 1, 48, MAIN_CORE_PROC, 48, -1},
        {98, 3, 1, 49, HYPER_THREADING_PROC, 49, -1},    {99, 3, 1, 49, MAIN_CORE_PROC, 49, -1},
        {100, 3, 1, 50, HYPER_THREADING_PROC, 50, -1},   {101, 3, 1, 50, MAIN_CORE_PROC, 50, -1},
        {102, 3, 1, 51, HYPER_THREADING_PROC, 51, -1},   {103, 3, 1, 51, MAIN_CORE_PROC, 51, -1},
        {104, 0, 0, 52, HYPER_THREADING_PROC, 52, -1},   {105, 0, 0, 52, MAIN_CORE_PROC, 52, -1},
        {106, 0, 0, 53, HYPER_THREADING_PROC, 53, -1},   {107, 0, 0, 53, MAIN_CORE_PROC, 53, -1},
        {108, 0, 0, 54, HYPER_THREADING_PROC, 54, -1},   {109, 0, 0, 54, MAIN_CORE_PROC, 54, -1},
        {110, 0, 0, 55, HYPER_THREADING_PROC, 55, -1},   {111, 0, 0, 55, MAIN_CORE_PROC, 55, -1},
        {112, 0, 0, 56, HYPER_THREADING_PROC, 56, -1},   {113, 0, 0, 56, MAIN_CORE_PROC, 56, -1},
        {114, 0, 0, 57, HYPER_THREADING_PROC, 57, -1},   {115, 0, 0, 57, MAIN_CORE_PROC, 57, -1},
        {116, 0, 0, 58, HYPER_THREADING_PROC, 58, -1},   {117, 0, 0, 58, MAIN_CORE_PROC, 58, -1},
        {118, 0, 0, 59, HYPER_THREADING_PROC, 59, -1},   {119, 0, 0, 59, MAIN_CORE_PROC, 59, -1},
        {120, 0, 0, 60, HYPER_THREADING_PROC, 60, -1},   {121, 0, 0, 60, MAIN_CORE_PROC, 60, -1},
        {122, 0, 0, 61, HYPER_THREADING_PROC, 61, -1},   {123, 0, 0, 61, MAIN_CORE_PROC, 61, -1},
        {124, 0, 0, 62, HYPER_THREADING_PROC, 62, -1},   {125, 0, 0, 62, MAIN_CORE_PROC, 62, -1},
        {126, 0, 0, 63, HYPER_THREADING_PROC, 63, -1},   {127, 0, 0, 63, MAIN_CORE_PROC, 63, -1},
        {128, 0, 0, 64, HYPER_THREADING_PROC, 64, -1},   {129, 0, 0, 64, MAIN_CORE_PROC, 64, -1},
        {130, 1, 0, 65, HYPER_THREADING_PROC, 65, -1},   {131, 1, 0, 65, MAIN_CORE_PROC, 65, -1},
        {132, 1, 0, 66, HYPER_THREADING_PROC, 66, -1},   {133, 1, 0, 66, MAIN_CORE_PROC, 66, -1},
        {134, 1, 0, 67, HYPER_THREADING_PROC, 67, -1},   {135, 1, 0, 67, MAIN_CORE_PROC, 67, -1},
        {136, 1, 0, 68, HYPER_THREADING_PROC, 68, -1},   {137, 1, 0, 68, MAIN_CORE_PROC, 68, -1},
        {138, 1, 0, 69, HYPER_THREADING_PROC, 69, -1},   {139, 1, 0, 69, MAIN_CORE_PROC, 69, -1},
        {140, 1, 0, 70, HYPER_THREADING_PROC, 70, -1},   {141, 1, 0, 70, MAIN_CORE_PROC, 70, -1},
        {142, 1, 0, 71, HYPER_THREADING_PROC, 71, -1},   {143, 1, 0, 71, MAIN_CORE_PROC, 71, -1},
        {144, 1, 0, 72, HYPER_THREADING_PROC, 72, -1},   {145, 1, 0, 72, MAIN_CORE_PROC, 72, -1},
        {146, 1, 0, 73, HYPER_THREADING_PROC, 73, -1},   {147, 1, 0, 73, MAIN_CORE_PROC, 73, -1},
        {148, 1, 0, 74, HYPER_THREADING_PROC, 74, -1},   {149, 1, 0, 74, MAIN_CORE_PROC, 74, -1},
        {150, 1, 0, 75, HYPER_THREADING_PROC, 75, -1},   {151, 1, 0, 75, MAIN_CORE_PROC, 75, -1},
        {152, 1, 0, 76, HYPER_THREADING_PROC, 76, -1},   {153, 1, 0, 76, MAIN_CORE_PROC, 76, -1},
        {154, 1, 0, 77, HYPER_THREADING_PROC, 77, -1},   {155, 1, 0, 77, MAIN_CORE_PROC, 77, -1},
        {156, 2, 1, 78, HYPER_THREADING_PROC, 78, -1},   {157, 2, 1, 78, MAIN_CORE_PROC, 78, -1},
        {158, 2, 1, 79, HYPER_THREADING_PROC, 79, -1},   {159, 2, 1, 79, MAIN_CORE_PROC, 79, -1},
        {160, 2, 1, 80, HYPER_THREADING_PROC, 80, -1},   {161, 2, 1, 80, MAIN_CORE_PROC, 80, -1},
        {162, 2, 1, 81, HYPER_THREADING_PROC, 81, -1},   {163, 2, 1, 81, MAIN_CORE_PROC, 81, -1},
        {164, 2, 1, 82, HYPER_THREADING_PROC, 82, -1},   {165, 2, 1, 82, MAIN_CORE_PROC, 82, -1},
        {166, 2, 1, 83, HYPER_THREADING_PROC, 83, -1},   {167, 2, 1, 83, MAIN_CORE_PROC, 83, -1},
        {168, 2, 1, 84, HYPER_THREADING_PROC, 84, -1},   {169, 2, 1, 84, MAIN_CORE_PROC, 84, -1},
        {170, 2, 1, 85, HYPER_THREADING_PROC, 85, -1},   {171, 2, 1, 85, MAIN_CORE_PROC, 85, -1},
        {172, 2, 1, 86, HYPER_THREADING_PROC, 86, -1},   {173, 2, 1, 86, MAIN_CORE_PROC, 86, -1},
        {174, 2, 1, 87, HYPER_THREADING_PROC, 87, -1},   {175, 2, 1, 87, MAIN_CORE_PROC, 87, -1},
        {176, 2, 1, 88, HYPER_THREADING_PROC, 88, -1},   {177, 2, 1, 88, MAIN_CORE_PROC, 88, -1},
        {178, 2, 1, 89, HYPER_THREADING_PROC, 89, -1},   {179, 2, 1, 89, MAIN_CORE_PROC, 89, -1},
        {180, 2, 1, 90, HYPER_THREADING_PROC, 90, -1},   {181, 2, 1, 90, MAIN_CORE_PROC, 90, -1},
        {182, 3, 1, 91, HYPER_THREADING_PROC, 91, -1},   {183, 3, 1, 91, MAIN_CORE_PROC, 91, -1},
        {184, 3, 1, 92, HYPER_THREADING_PROC, 92, -1},   {185, 3, 1, 92, MAIN_CORE_PROC, 92, -1},
        {186, 3, 1, 93, HYPER_THREADING_PROC, 93, -1},   {187, 3, 1, 93, MAIN_CORE_PROC, 93, -1},
        {188, 3, 1, 94, HYPER_THREADING_PROC, 94, -1},   {189, 3, 1, 94, MAIN_CORE_PROC, 94, -1},
        {190, 3, 1, 95, HYPER_THREADING_PROC, 95, -1},   {191, 3, 1, 95, MAIN_CORE_PROC, 95, -1},
        {192, 3, 1, 96, HYPER_THREADING_PROC, 96, -1},   {193, 3, 1, 96, MAIN_CORE_PROC, 96, -1},
        {194, 3, 1, 97, HYPER_THREADING_PROC, 97, -1},   {195, 3, 1, 97, MAIN_CORE_PROC, 97, -1},
        {196, 3, 1, 98, HYPER_THREADING_PROC, 98, -1},   {197, 3, 1, 98, MAIN_CORE_PROC, 98, -1},
        {198, 3, 1, 99, HYPER_THREADING_PROC, 99, -1},   {199, 3, 1, 99, MAIN_CORE_PROC, 99, -1},
        {200, 3, 1, 100, HYPER_THREADING_PROC, 100, -1}, {201, 3, 1, 100, MAIN_CORE_PROC, 100, -1},
        {202, 3, 1, 101, HYPER_THREADING_PROC, 101, -1}, {203, 3, 1, 101, MAIN_CORE_PROC, 101, -1},
        {204, 3, 1, 102, HYPER_THREADING_PROC, 102, -1}, {205, 3, 1, 102, MAIN_CORE_PROC, 102, -1},
        {206, 3, 1, 103, HYPER_THREADING_PROC, 103, -1}, {207, 3, 1, 103, MAIN_CORE_PROC, 103, -1},
    },
    {{1, ALL_PROC, 104, -1, 0},
     {0, MAIN_CORE_PROC, 26, 0, 0},
     {0, MAIN_CORE_PROC, 26, 1, 0},
     {0, HYPER_THREADING_PROC, 26, 0, 0},
     {0, HYPER_THREADING_PROC, 26, 1, 0},
     {1, ALL_PROC, 104, -1, 1},
     {0, MAIN_CORE_PROC, 26, 2, 1},
     {0, MAIN_CORE_PROC, 26, 3, 1},
     {0, HYPER_THREADING_PROC, 26, 2, 1},
     {0, HYPER_THREADING_PROC, 26, 3, 1}},
    {{0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,  13,  14,  15,  16,  17,  18,  19,  20,
      21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,
      42,  43,  44,  45,  46,  47,  48,  49,  50,  51,  104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
      115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
      136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155},
     {52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,  72,
      73,  74,  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,
      94,  95,  96,  97,  98,  99,  100, 101, 102, 103, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
      167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
      188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207}},
    NOT_USED,
};
LinuxCpuReserveTestCase _2sockets_104cores_1streams = {
    208,
    2,
    {{208, 104, 0, 0, 104, -1, -1},
     {52, 26, 0, 0, 26, 0, 0},
     {52, 26, 0, 0, 26, 1, 0},
     {52, 26, 0, 0, 26, 2, 1},
     {52, 26, 0, 0, 26, 3, 1}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},       {1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
        {2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},       {3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
        {4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},       {5, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
        {6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},       {7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
        {8, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},       {9, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
        {10, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},      {11, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
        {12, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},      {13, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
        {14, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},      {15, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
        {16, 0, 0, 8, HYPER_THREADING_PROC, 8, -1},      {17, 0, 0, 8, MAIN_CORE_PROC, 8, -1},
        {18, 0, 0, 9, HYPER_THREADING_PROC, 9, -1},      {19, 0, 0, 9, MAIN_CORE_PROC, 9, -1},
        {20, 0, 0, 10, HYPER_THREADING_PROC, 10, -1},    {21, 0, 0, 10, MAIN_CORE_PROC, 10, -1},
        {22, 0, 0, 11, HYPER_THREADING_PROC, 11, -1},    {23, 0, 0, 11, MAIN_CORE_PROC, 11, -1},
        {24, 0, 0, 12, HYPER_THREADING_PROC, 12, -1},    {25, 0, 0, 12, MAIN_CORE_PROC, 12, -1},
        {26, 1, 0, 13, HYPER_THREADING_PROC, 13, -1},    {27, 1, 0, 13, MAIN_CORE_PROC, 13, -1},
        {28, 1, 0, 14, HYPER_THREADING_PROC, 14, -1},    {29, 1, 0, 14, MAIN_CORE_PROC, 14, -1},
        {30, 1, 0, 15, HYPER_THREADING_PROC, 15, -1},    {31, 1, 0, 15, MAIN_CORE_PROC, 15, -1},
        {32, 1, 0, 16, HYPER_THREADING_PROC, 16, -1},    {33, 1, 0, 16, MAIN_CORE_PROC, 16, -1},
        {34, 1, 0, 17, HYPER_THREADING_PROC, 17, -1},    {35, 1, 0, 17, MAIN_CORE_PROC, 17, -1},
        {36, 1, 0, 18, HYPER_THREADING_PROC, 18, -1},    {37, 1, 0, 18, MAIN_CORE_PROC, 18, -1},
        {38, 1, 0, 19, HYPER_THREADING_PROC, 19, -1},    {39, 1, 0, 19, MAIN_CORE_PROC, 19, -1},
        {40, 1, 0, 20, HYPER_THREADING_PROC, 20, -1},    {41, 1, 0, 20, MAIN_CORE_PROC, 20, -1},
        {42, 1, 0, 21, HYPER_THREADING_PROC, 21, -1},    {43, 1, 0, 21, MAIN_CORE_PROC, 21, -1},
        {44, 1, 0, 22, HYPER_THREADING_PROC, 22, -1},    {45, 1, 0, 22, MAIN_CORE_PROC, 22, -1},
        {46, 1, 0, 23, HYPER_THREADING_PROC, 23, -1},    {47, 1, 0, 23, MAIN_CORE_PROC, 23, -1},
        {48, 1, 0, 24, HYPER_THREADING_PROC, 24, -1},    {49, 1, 0, 24, MAIN_CORE_PROC, 24, -1},
        {50, 1, 0, 25, HYPER_THREADING_PROC, 25, -1},    {51, 1, 0, 25, MAIN_CORE_PROC, 25, -1},
        {52, 2, 1, 26, HYPER_THREADING_PROC, 26, -1},    {53, 2, 1, 26, MAIN_CORE_PROC, 26, -1},
        {54, 2, 1, 27, HYPER_THREADING_PROC, 27, -1},    {55, 2, 1, 27, MAIN_CORE_PROC, 27, -1},
        {56, 2, 1, 28, HYPER_THREADING_PROC, 28, -1},    {57, 2, 1, 28, MAIN_CORE_PROC, 28, -1},
        {58, 2, 1, 29, HYPER_THREADING_PROC, 29, -1},    {59, 2, 1, 29, MAIN_CORE_PROC, 29, -1},
        {60, 2, 1, 30, HYPER_THREADING_PROC, 30, -1},    {61, 2, 1, 30, MAIN_CORE_PROC, 30, -1},
        {62, 2, 1, 31, HYPER_THREADING_PROC, 31, -1},    {63, 2, 1, 31, MAIN_CORE_PROC, 31, -1},
        {64, 2, 1, 32, HYPER_THREADING_PROC, 32, -1},    {65, 2, 1, 32, MAIN_CORE_PROC, 32, -1},
        {66, 2, 1, 33, HYPER_THREADING_PROC, 33, -1},    {67, 2, 1, 33, MAIN_CORE_PROC, 33, -1},
        {68, 2, 1, 34, HYPER_THREADING_PROC, 34, -1},    {69, 2, 1, 34, MAIN_CORE_PROC, 34, -1},
        {70, 2, 1, 35, HYPER_THREADING_PROC, 35, -1},    {71, 2, 1, 35, MAIN_CORE_PROC, 35, -1},
        {72, 2, 1, 36, HYPER_THREADING_PROC, 36, -1},    {73, 2, 1, 36, MAIN_CORE_PROC, 36, -1},
        {74, 2, 1, 37, HYPER_THREADING_PROC, 37, -1},    {75, 2, 1, 37, MAIN_CORE_PROC, 37, -1},
        {76, 2, 1, 38, HYPER_THREADING_PROC, 38, -1},    {77, 2, 1, 38, MAIN_CORE_PROC, 38, -1},
        {78, 3, 1, 39, HYPER_THREADING_PROC, 39, -1},    {79, 3, 1, 39, MAIN_CORE_PROC, 39, -1},
        {80, 3, 1, 40, HYPER_THREADING_PROC, 40, -1},    {81, 3, 1, 40, MAIN_CORE_PROC, 40, -1},
        {82, 3, 1, 41, HYPER_THREADING_PROC, 41, -1},    {83, 3, 1, 41, MAIN_CORE_PROC, 41, -1},
        {84, 3, 1, 42, HYPER_THREADING_PROC, 42, -1},    {85, 3, 1, 42, MAIN_CORE_PROC, 42, -1},
        {86, 3, 1, 43, HYPER_THREADING_PROC, 43, -1},    {87, 3, 1, 43, MAIN_CORE_PROC, 43, -1},
        {88, 3, 1, 44, HYPER_THREADING_PROC, 44, -1},    {89, 3, 1, 44, MAIN_CORE_PROC, 44, -1},
        {90, 3, 1, 45, HYPER_THREADING_PROC, 45, -1},    {91, 3, 1, 45, MAIN_CORE_PROC, 45, -1},
        {92, 3, 1, 46, HYPER_THREADING_PROC, 46, -1},    {93, 3, 1, 46, MAIN_CORE_PROC, 46, -1},
        {94, 3, 1, 47, HYPER_THREADING_PROC, 47, -1},    {95, 3, 1, 47, MAIN_CORE_PROC, 47, -1},
        {96, 3, 1, 48, HYPER_THREADING_PROC, 48, -1},    {97, 3, 1, 48, MAIN_CORE_PROC, 48, -1},
        {98, 3, 1, 49, HYPER_THREADING_PROC, 49, -1},    {99, 3, 1, 49, MAIN_CORE_PROC, 49, -1},
        {100, 3, 1, 50, HYPER_THREADING_PROC, 50, -1},   {101, 3, 1, 50, MAIN_CORE_PROC, 50, -1},
        {102, 3, 1, 51, HYPER_THREADING_PROC, 51, -1},   {103, 3, 1, 51, MAIN_CORE_PROC, 51, -1},
        {104, 0, 0, 52, HYPER_THREADING_PROC, 52, -1},   {105, 0, 0, 52, MAIN_CORE_PROC, 52, -1},
        {106, 0, 0, 53, HYPER_THREADING_PROC, 53, -1},   {107, 0, 0, 53, MAIN_CORE_PROC, 53, -1},
        {108, 0, 0, 54, HYPER_THREADING_PROC, 54, -1},   {109, 0, 0, 54, MAIN_CORE_PROC, 54, -1},
        {110, 0, 0, 55, HYPER_THREADING_PROC, 55, -1},   {111, 0, 0, 55, MAIN_CORE_PROC, 55, -1},
        {112, 0, 0, 56, HYPER_THREADING_PROC, 56, -1},   {113, 0, 0, 56, MAIN_CORE_PROC, 56, -1},
        {114, 0, 0, 57, HYPER_THREADING_PROC, 57, -1},   {115, 0, 0, 57, MAIN_CORE_PROC, 57, -1},
        {116, 0, 0, 58, HYPER_THREADING_PROC, 58, -1},   {117, 0, 0, 58, MAIN_CORE_PROC, 58, -1},
        {118, 0, 0, 59, HYPER_THREADING_PROC, 59, -1},   {119, 0, 0, 59, MAIN_CORE_PROC, 59, -1},
        {120, 0, 0, 60, HYPER_THREADING_PROC, 60, -1},   {121, 0, 0, 60, MAIN_CORE_PROC, 60, -1},
        {122, 0, 0, 61, HYPER_THREADING_PROC, 61, -1},   {123, 0, 0, 61, MAIN_CORE_PROC, 61, -1},
        {124, 0, 0, 62, HYPER_THREADING_PROC, 62, -1},   {125, 0, 0, 62, MAIN_CORE_PROC, 62, -1},
        {126, 0, 0, 63, HYPER_THREADING_PROC, 63, -1},   {127, 0, 0, 63, MAIN_CORE_PROC, 63, -1},
        {128, 0, 0, 64, HYPER_THREADING_PROC, 64, -1},   {129, 0, 0, 64, MAIN_CORE_PROC, 64, -1},
        {130, 1, 0, 65, HYPER_THREADING_PROC, 65, -1},   {131, 1, 0, 65, MAIN_CORE_PROC, 65, -1},
        {132, 1, 0, 66, HYPER_THREADING_PROC, 66, -1},   {133, 1, 0, 66, MAIN_CORE_PROC, 66, -1},
        {134, 1, 0, 67, HYPER_THREADING_PROC, 67, -1},   {135, 1, 0, 67, MAIN_CORE_PROC, 67, -1},
        {136, 1, 0, 68, HYPER_THREADING_PROC, 68, -1},   {137, 1, 0, 68, MAIN_CORE_PROC, 68, -1},
        {138, 1, 0, 69, HYPER_THREADING_PROC, 69, -1},   {139, 1, 0, 69, MAIN_CORE_PROC, 69, -1},
        {140, 1, 0, 70, HYPER_THREADING_PROC, 70, -1},   {141, 1, 0, 70, MAIN_CORE_PROC, 70, -1},
        {142, 1, 0, 71, HYPER_THREADING_PROC, 71, -1},   {143, 1, 0, 71, MAIN_CORE_PROC, 71, -1},
        {144, 1, 0, 72, HYPER_THREADING_PROC, 72, -1},   {145, 1, 0, 72, MAIN_CORE_PROC, 72, -1},
        {146, 1, 0, 73, HYPER_THREADING_PROC, 73, -1},   {147, 1, 0, 73, MAIN_CORE_PROC, 73, -1},
        {148, 1, 0, 74, HYPER_THREADING_PROC, 74, -1},   {149, 1, 0, 74, MAIN_CORE_PROC, 74, -1},
        {150, 1, 0, 75, HYPER_THREADING_PROC, 75, -1},   {151, 1, 0, 75, MAIN_CORE_PROC, 75, -1},
        {152, 1, 0, 76, HYPER_THREADING_PROC, 76, -1},   {153, 1, 0, 76, MAIN_CORE_PROC, 76, -1},
        {154, 1, 0, 77, HYPER_THREADING_PROC, 77, -1},   {155, 1, 0, 77, MAIN_CORE_PROC, 77, -1},
        {156, 2, 1, 78, HYPER_THREADING_PROC, 78, -1},   {157, 2, 1, 78, MAIN_CORE_PROC, 78, -1},
        {158, 2, 1, 79, HYPER_THREADING_PROC, 79, -1},   {159, 2, 1, 79, MAIN_CORE_PROC, 79, -1},
        {160, 2, 1, 80, HYPER_THREADING_PROC, 80, -1},   {161, 2, 1, 80, MAIN_CORE_PROC, 80, -1},
        {162, 2, 1, 81, HYPER_THREADING_PROC, 81, -1},   {163, 2, 1, 81, MAIN_CORE_PROC, 81, -1},
        {164, 2, 1, 82, HYPER_THREADING_PROC, 82, -1},   {165, 2, 1, 82, MAIN_CORE_PROC, 82, -1},
        {166, 2, 1, 83, HYPER_THREADING_PROC, 83, -1},   {167, 2, 1, 83, MAIN_CORE_PROC, 83, -1},
        {168, 2, 1, 84, HYPER_THREADING_PROC, 84, -1},   {169, 2, 1, 84, MAIN_CORE_PROC, 84, -1},
        {170, 2, 1, 85, HYPER_THREADING_PROC, 85, -1},   {171, 2, 1, 85, MAIN_CORE_PROC, 85, -1},
        {172, 2, 1, 86, HYPER_THREADING_PROC, 86, -1},   {173, 2, 1, 86, MAIN_CORE_PROC, 86, -1},
        {174, 2, 1, 87, HYPER_THREADING_PROC, 87, -1},   {175, 2, 1, 87, MAIN_CORE_PROC, 87, -1},
        {176, 2, 1, 88, HYPER_THREADING_PROC, 88, -1},   {177, 2, 1, 88, MAIN_CORE_PROC, 88, -1},
        {178, 2, 1, 89, HYPER_THREADING_PROC, 89, -1},   {179, 2, 1, 89, MAIN_CORE_PROC, 89, -1},
        {180, 2, 1, 90, HYPER_THREADING_PROC, 90, -1},   {181, 2, 1, 90, MAIN_CORE_PROC, 90, -1},
        {182, 3, 1, 91, HYPER_THREADING_PROC, 91, -1},   {183, 3, 1, 91, MAIN_CORE_PROC, 91, -1},
        {184, 3, 1, 92, HYPER_THREADING_PROC, 92, -1},   {185, 3, 1, 92, MAIN_CORE_PROC, 92, -1},
        {186, 3, 1, 93, HYPER_THREADING_PROC, 93, -1},   {187, 3, 1, 93, MAIN_CORE_PROC, 93, -1},
        {188, 3, 1, 94, HYPER_THREADING_PROC, 94, -1},   {189, 3, 1, 94, MAIN_CORE_PROC, 94, -1},
        {190, 3, 1, 95, HYPER_THREADING_PROC, 95, -1},   {191, 3, 1, 95, MAIN_CORE_PROC, 95, -1},
        {192, 3, 1, 96, HYPER_THREADING_PROC, 96, -1},   {193, 3, 1, 96, MAIN_CORE_PROC, 96, -1},
        {194, 3, 1, 97, HYPER_THREADING_PROC, 97, -1},   {195, 3, 1, 97, MAIN_CORE_PROC, 97, -1},
        {196, 3, 1, 98, HYPER_THREADING_PROC, 98, -1},   {197, 3, 1, 98, MAIN_CORE_PROC, 98, -1},
        {198, 3, 1, 99, HYPER_THREADING_PROC, 99, -1},   {199, 3, 1, 99, MAIN_CORE_PROC, 99, -1},
        {200, 3, 1, 100, HYPER_THREADING_PROC, 100, -1}, {201, 3, 1, 100, MAIN_CORE_PROC, 100, -1},
        {202, 3, 1, 101, HYPER_THREADING_PROC, 101, -1}, {203, 3, 1, 101, MAIN_CORE_PROC, 101, -1},
        {204, 3, 1, 102, HYPER_THREADING_PROC, 102, -1}, {205, 3, 1, 102, MAIN_CORE_PROC, 102, -1},
        {206, 3, 1, 103, HYPER_THREADING_PROC, 103, -1}, {207, 3, 1, 103, MAIN_CORE_PROC, 103, -1},
    },
    {{1, ALL_PROC, 208, -1, -1},
     {-1, ALL_PROC, 104, -1, 0},
     {0, MAIN_CORE_PROC, 26, 0, 0},
     {0, MAIN_CORE_PROC, 26, 1, 0},
     {0, HYPER_THREADING_PROC, 26, 0, 0},
     {0, HYPER_THREADING_PROC, 26, 1, 0},
     {-1, ALL_PROC, 104, -1, 1},
     {0, MAIN_CORE_PROC, 26, 2, 1},
     {0, MAIN_CORE_PROC, 26, 3, 1},
     {0, HYPER_THREADING_PROC, 26, 2, 1},
     {0, HYPER_THREADING_PROC, 26, 3, 1}},
    {{0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,  13,  14,  15,  16,  17,  18,  19,  20,
      21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,
      42,  43,  44,  45,  46,  47,  48,  49,  50,  51,  104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
      115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
      136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155},
     {52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,  72,
      73,  74,  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  91,  92,  93,
      94,  95,  96,  97,  98,  99,  100, 101, 102, 103, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166,
      167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187,
      188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207}},
    NOT_USED,
};
LinuxCpuReserveTestCase _2sockets_20cores_hyper_20streams = {
    40,
    2,
    {{40, 20, 0, 0, 20, -1, -1}, {20, 10, 0, 0, 10, 0, 0}, {20, 10, 0, 0, 10, 1, 1}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},    {1, 1, 1, 1, HYPER_THREADING_PROC, 1, -1},
        {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},    {3, 1, 1, 3, HYPER_THREADING_PROC, 3, -1},
        {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},    {5, 1, 1, 5, HYPER_THREADING_PROC, 5, -1},
        {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},    {7, 1, 1, 7, HYPER_THREADING_PROC, 7, -1},
        {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1},    {9, 1, 1, 9, HYPER_THREADING_PROC, 9, -1},
        {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 1, 1, 11, HYPER_THREADING_PROC, 11, -1},
        {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 1, 1, 13, HYPER_THREADING_PROC, 13, -1},
        {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 1, 1, 15, HYPER_THREADING_PROC, 15, -1},
        {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 1, 1, 17, HYPER_THREADING_PROC, 17, -1},
        {18, 0, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 1, 1, 19, HYPER_THREADING_PROC, 19, -1},
        {20, 0, 0, 20, MAIN_CORE_PROC, 0, -1},        {21, 1, 1, 21, MAIN_CORE_PROC, 1, -1},
        {22, 0, 0, 22, MAIN_CORE_PROC, 2, -1},        {23, 1, 1, 23, MAIN_CORE_PROC, 3, -1},
        {24, 0, 0, 24, MAIN_CORE_PROC, 4, -1},        {25, 1, 1, 25, MAIN_CORE_PROC, 5, -1},
        {26, 0, 0, 26, MAIN_CORE_PROC, 6, -1},        {27, 1, 1, 27, MAIN_CORE_PROC, 7, -1},
        {28, 0, 0, 28, MAIN_CORE_PROC, 8, -1},        {29, 1, 1, 29, MAIN_CORE_PROC, 9, -1},
        {30, 0, 0, 30, MAIN_CORE_PROC, 10, -1},       {31, 1, 1, 31, MAIN_CORE_PROC, 11, -1},
        {32, 0, 0, 32, MAIN_CORE_PROC, 12, -1},       {33, 1, 1, 33, MAIN_CORE_PROC, 13, -1},
        {34, 0, 0, 34, MAIN_CORE_PROC, 14, -1},       {35, 1, 1, 35, MAIN_CORE_PROC, 15, -1},
        {36, 0, 0, 36, MAIN_CORE_PROC, 16, -1},       {37, 1, 1, 37, MAIN_CORE_PROC, 17, -1},
        {38, 0, 0, 38, MAIN_CORE_PROC, 18, -1},       {39, 1, 1, 39, MAIN_CORE_PROC, 19, -1},

    },
    {{10, MAIN_CORE_PROC, 1, 0, 0}, {10, MAIN_CORE_PROC, 1, 1, 1}},
    {
        {20}, {22}, {24}, {26}, {28}, {30}, {32}, {34}, {36}, {38},
        {21}, {23}, {25}, {27}, {29}, {31}, {33}, {35}, {37}, {39},
    },
    NOT_USED,
};
LinuxCpuReserveTestCase _2sockets_20cores_hyper_4streams = {
    40,
    2,
    {{40, 20, 0, 0, 20, -1, -1}, {20, 10, 0, 0, 10, 0, 0}, {20, 10, 0, 0, 10, 1, 1}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},    {1, 1, 1, 1, HYPER_THREADING_PROC, 1, -1},
        {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},    {3, 1, 1, 3, HYPER_THREADING_PROC, 3, -1},
        {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},    {5, 1, 1, 5, HYPER_THREADING_PROC, 5, -1},
        {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},    {7, 1, 1, 7, HYPER_THREADING_PROC, 7, -1},
        {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1},    {9, 1, 1, 9, HYPER_THREADING_PROC, 9, -1},
        {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 1, 1, 11, HYPER_THREADING_PROC, 11, -1},
        {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 1, 1, 13, HYPER_THREADING_PROC, 13, -1},
        {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 1, 1, 15, HYPER_THREADING_PROC, 15, -1},
        {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 1, 1, 17, HYPER_THREADING_PROC, 17, -1},
        {18, 0, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 1, 1, 19, HYPER_THREADING_PROC, 19, -1},
        {20, 0, 0, 20, MAIN_CORE_PROC, 0, -1},        {21, 1, 1, 21, MAIN_CORE_PROC, 1, -1},
        {22, 0, 0, 22, MAIN_CORE_PROC, 2, -1},        {23, 1, 1, 23, MAIN_CORE_PROC, 3, -1},
        {24, 0, 0, 24, MAIN_CORE_PROC, 4, -1},        {25, 1, 1, 25, MAIN_CORE_PROC, 5, -1},
        {26, 0, 0, 26, MAIN_CORE_PROC, 6, -1},        {27, 1, 1, 27, MAIN_CORE_PROC, 7, -1},
        {28, 0, 0, 28, MAIN_CORE_PROC, 8, -1},        {29, 1, 1, 29, MAIN_CORE_PROC, 9, -1},
        {30, 0, 0, 30, MAIN_CORE_PROC, 10, -1},       {31, 1, 1, 31, MAIN_CORE_PROC, 11, -1},
        {32, 0, 0, 32, MAIN_CORE_PROC, 12, -1},       {33, 1, 1, 33, MAIN_CORE_PROC, 13, -1},
        {34, 0, 0, 34, MAIN_CORE_PROC, 14, -1},       {35, 1, 1, 35, MAIN_CORE_PROC, 15, -1},
        {36, 0, 0, 36, MAIN_CORE_PROC, 16, -1},       {37, 1, 1, 37, MAIN_CORE_PROC, 17, -1},
        {38, 0, 0, 38, MAIN_CORE_PROC, 18, -1},       {39, 1, 1, 39, MAIN_CORE_PROC, 19, -1},

    },
    {{2, MAIN_CORE_PROC, 5, 0, 0}, {2, MAIN_CORE_PROC, 5, 1, 1}},
    {
        {20, 22, 24, 26, 28},
        {30, 32, 34, 36, 38},
        {21, 23, 25, 27, 29},
        {31, 33, 35, 37, 39},
    },
    CPU_USED,
};
LinuxCpuReserveTestCase _2sockets_20cores_hyper_5streams = {
    40,
    2,
    {{40, 20, 0, 0, 20, -1, -1}, {20, 10, 0, 0, 10, 0, 0}, {20, 10, 0, 0, 10, 1, 1}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},    {1, 1, 1, 1, HYPER_THREADING_PROC, 1, -1},
        {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},    {3, 1, 1, 3, HYPER_THREADING_PROC, 3, -1},
        {4, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},    {5, 1, 1, 5, HYPER_THREADING_PROC, 5, -1},
        {6, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},    {7, 1, 1, 7, HYPER_THREADING_PROC, 7, -1},
        {8, 0, 0, 8, HYPER_THREADING_PROC, 8, -1},    {9, 1, 1, 9, HYPER_THREADING_PROC, 9, -1},
        {10, 0, 0, 10, HYPER_THREADING_PROC, 10, -1}, {11, 1, 1, 11, HYPER_THREADING_PROC, 11, -1},
        {12, 0, 0, 12, HYPER_THREADING_PROC, 12, -1}, {13, 1, 1, 13, HYPER_THREADING_PROC, 13, -1},
        {14, 0, 0, 14, HYPER_THREADING_PROC, 14, -1}, {15, 1, 1, 15, HYPER_THREADING_PROC, 15, -1},
        {16, 0, 0, 16, HYPER_THREADING_PROC, 16, -1}, {17, 1, 1, 17, HYPER_THREADING_PROC, 17, -1},
        {18, 0, 0, 18, HYPER_THREADING_PROC, 18, -1}, {19, 1, 1, 19, HYPER_THREADING_PROC, 19, -1},
        {20, 0, 0, 20, MAIN_CORE_PROC, 0, -1},        {21, 1, 1, 21, MAIN_CORE_PROC, 1, -1},
        {22, 0, 0, 22, MAIN_CORE_PROC, 2, -1},        {23, 1, 1, 23, MAIN_CORE_PROC, 3, -1},
        {24, 0, 0, 24, MAIN_CORE_PROC, 4, -1},        {25, 1, 1, 25, MAIN_CORE_PROC, 5, -1},
        {26, 0, 0, 26, MAIN_CORE_PROC, 6, -1},        {27, 1, 1, 27, MAIN_CORE_PROC, 7, -1},
        {28, 0, 0, 28, MAIN_CORE_PROC, 8, -1},        {29, 1, 1, 29, MAIN_CORE_PROC, 9, -1},
        {30, 0, 0, 30, MAIN_CORE_PROC, 10, -1},       {31, 1, 1, 31, MAIN_CORE_PROC, 11, -1},
        {32, 0, 0, 32, MAIN_CORE_PROC, 12, -1},       {33, 1, 1, 33, MAIN_CORE_PROC, 13, -1},
        {34, 0, 0, 34, MAIN_CORE_PROC, 14, -1},       {35, 1, 1, 35, MAIN_CORE_PROC, 15, -1},
        {36, 0, 0, 36, MAIN_CORE_PROC, 16, -1},       {37, 1, 1, 37, MAIN_CORE_PROC, 17, -1},
        {38, 0, 0, 38, MAIN_CORE_PROC, 18, -1},       {39, 1, 1, 39, MAIN_CORE_PROC, 19, -1},

    },
    {{2, MAIN_CORE_PROC, 4, 0, 0},
     {2, MAIN_CORE_PROC, 4, 1, 1},
     {1, ALL_PROC, 4, -1, -1},
     {0, MAIN_CORE_PROC, 2, 0, 0},
     {0, MAIN_CORE_PROC, 2, 1, 1}},
    {
        {20, 22, 24, 26},
        {28, 30, 32, 34},
        {21, 23, 25, 27},
        {29, 31, 33, 35},
        {36, 37, 38, 39},
    },
    CPU_USED,
};
LinuxCpuReserveTestCase _1socket_4cores_hyper_1streams = {
    8,
    1,
    {{8, 4, 0, 0, 4, 0, 0}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
        {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
        {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},
        {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
        {4, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
        {5, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
        {6, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
        {7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
    },
    {{1, MAIN_CORE_PROC, 4, 0, 0}},
    {{4, 5, 6, 7}},
    NOT_USED,
};
LinuxCpuReserveTestCase _1socket_4cores_hyper_4streams = {
    8,
    1,
    {{8, 4, 0, 0, 4, 0, 0}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
        {1, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
        {2, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},
        {3, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
        {4, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
        {5, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
        {6, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
        {7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
    },
    {{2, MAIN_CORE_PROC, 2, 0, 0}, {2, HYPER_THREADING_PROC, 2, 0, 0}},
    {{4, 5}, {6, 7}, {0, 1}, {2, 3}},
    NOT_USED,
};
LinuxCpuReserveTestCase _1socket_16cores_hyper_20streams = {
    24,
    1,
    {{24, 8, 8, 0, 8, 0, 0}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},  {1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
        {2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},  {3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
        {4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},  {5, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
        {6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},  {7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
        {8, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},  {9, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
        {10, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, {11, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
        {12, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {13, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
        {14, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, {15, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
        {16, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1},  {17, 0, 0, 9, EFFICIENT_CORE_PROC, 8, -1},
        {18, 0, 0, 10, EFFICIENT_CORE_PROC, 8, -1}, {19, 0, 0, 11, EFFICIENT_CORE_PROC, 8, -1},
        {20, 0, 0, 12, EFFICIENT_CORE_PROC, 9, -1}, {21, 0, 0, 13, EFFICIENT_CORE_PROC, 9, -1},
        {22, 0, 0, 14, EFFICIENT_CORE_PROC, 9, -1}, {23, 0, 0, 15, EFFICIENT_CORE_PROC, 9, -1},
    },
    {{8, MAIN_CORE_PROC, 1, 0, 0}, {4, EFFICIENT_CORE_PROC, 2, 0, 0}, {8, HYPER_THREADING_PROC, 1, 0, 0}},
    {
        {1},      {3},      {5}, {7}, {9}, {11}, {13}, {15}, {16, 17}, {18, 19},
        {20, 21}, {22, 23}, {0}, {2}, {4}, {6},  {8},  {10}, {12},     {14},
    },
    NOT_USED,
};
LinuxCpuReserveTestCase _1socket_16cores_hyper_1streams = {
    24,
    1,
    {{24, 8, 8, 0, 8, 0, 0}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},  {1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
        {2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},  {3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
        {4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},  {5, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
        {6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},  {7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
        {8, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},  {9, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
        {10, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, {11, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
        {12, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {13, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
        {14, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, {15, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
        {16, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1},  {17, 0, 0, 9, EFFICIENT_CORE_PROC, 8, -1},
        {18, 0, 0, 10, EFFICIENT_CORE_PROC, 8, -1}, {19, 0, 0, 11, EFFICIENT_CORE_PROC, 8, -1},
        {20, 0, 0, 12, EFFICIENT_CORE_PROC, 9, -1}, {21, 0, 0, 13, EFFICIENT_CORE_PROC, 9, -1},
        {22, 0, 0, 14, EFFICIENT_CORE_PROC, 9, -1}, {23, 0, 0, 15, EFFICIENT_CORE_PROC, 9, -1},
    },
    {{1, MAIN_CORE_PROC, 8, 0, 0}},
    {{1, 3, 5, 7, 9, 11, 13, 15}},
    NOT_USED,
};
LinuxCpuReserveTestCase _1socket_16cores_hyper_4streams = {
    24,
    1,
    {{24, 8, 8, 0, 8, 0, 0}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},  {1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
        {2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},  {3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
        {4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},  {5, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
        {6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},  {7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
        {8, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},  {9, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
        {10, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, {11, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
        {12, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {13, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
        {14, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, {15, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
        {16, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1},  {17, 0, 0, 9, EFFICIENT_CORE_PROC, 8, -1},
        {18, 0, 0, 10, EFFICIENT_CORE_PROC, 8, -1}, {19, 0, 0, 11, EFFICIENT_CORE_PROC, 8, -1},
        {20, 0, 0, 12, EFFICIENT_CORE_PROC, 9, -1}, {21, 0, 0, 13, EFFICIENT_CORE_PROC, 9, -1},
        {22, 0, 0, 14, EFFICIENT_CORE_PROC, 9, -1}, {23, 0, 0, 15, EFFICIENT_CORE_PROC, 9, -1},
    },
    {{2, MAIN_CORE_PROC, 4, 0, 0}, {2, EFFICIENT_CORE_PROC, 4, 0, 0}},
    {
        {1, 3, 5, 7},
        {9, 11, 13, 15},
        {16, 17, 18, 19},
        {20, 21, 22, 23},
    },
    NOT_USED,
};
LinuxCpuReserveTestCase _1socket_16cores_hyper_4streams_ecoreonly = {
    24,
    1,
    {{24, 8, 8, 0, 8, 0, 0}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},  {1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
        {2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},  {3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
        {4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},  {5, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
        {6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},  {7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
        {8, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},  {9, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
        {10, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, {11, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
        {12, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {13, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
        {14, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, {15, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
        {16, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1},  {17, 0, 0, 9, EFFICIENT_CORE_PROC, 8, -1},
        {18, 0, 0, 10, EFFICIENT_CORE_PROC, 8, -1}, {19, 0, 0, 11, EFFICIENT_CORE_PROC, 8, -1},
        {20, 0, 0, 12, EFFICIENT_CORE_PROC, 9, -1}, {21, 0, 0, 13, EFFICIENT_CORE_PROC, 9, -1},
        {22, 0, 0, 14, EFFICIENT_CORE_PROC, 9, -1}, {23, 0, 0, 15, EFFICIENT_CORE_PROC, 9, -1},
    },
    {{4, EFFICIENT_CORE_PROC, 2, 0, 0}},
    {
        {16, 17},
        {18, 19},
        {20, 21},
        {22, 23},
    },
    NOT_USED,
};
LinuxCpuReserveTestCase _1socket_18cores_hyper_1streams = {
    36,
    1,
    {{36, 18, 0, 0, 18, 0, 0}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},  {1, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
        {2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},  {3, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
        {4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},  {5, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},
        {6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},  {7, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
        {8, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},  {9, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},
        {10, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, {11, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
        {12, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {13, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},
        {14, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, {15, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
        {16, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {17, 0, 0, 9, HYPER_THREADING_PROC, 8, -1},
        {18, 0, 0, 0, MAIN_CORE_PROC, 0, -1},       {19, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
        {20, 0, 0, 2, MAIN_CORE_PROC, 2, -1},       {21, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
        {22, 0, 0, 4, MAIN_CORE_PROC, 4, -1},       {23, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
        {24, 0, 0, 6, MAIN_CORE_PROC, 6, -1},       {25, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
        {26, 0, 0, 8, MAIN_CORE_PROC, 8, -1},       {27, 0, 0, 9, MAIN_CORE_PROC, 9, -1},
        {28, 0, 0, 10, MAIN_CORE_PROC, 10, -1},     {29, 0, 0, 11, MAIN_CORE_PROC, 11, -1},
        {30, 0, 0, 12, MAIN_CORE_PROC, 12, -1},     {31, 0, 0, 13, MAIN_CORE_PROC, 13, -1},
        {32, 0, 0, 14, MAIN_CORE_PROC, 14, -1},     {33, 0, 0, 15, MAIN_CORE_PROC, 15, -1},
        {34, 0, 0, 16, MAIN_CORE_PROC, 16, -1},     {35, 0, 0, 17, MAIN_CORE_PROC, 17, -1},
    },
    {{1, ALL_PROC, 36, 0, 0}, {0, MAIN_CORE_PROC, 18, 0, 0}, {0, HYPER_THREADING_PROC, 18, 0, 0}},
    {
        {0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10, 11, 12, 13, 14, 15, 16, 17,
         18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35},
    },
    NOT_USED,
};
LinuxCpuReserveTestCase _1socket_18cores_hyper_2streams = {
    36,
    1,
    {{36, 18, 0, 0, 18, 0, 0}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},  {1, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
        {2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},  {3, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
        {4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},  {5, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},
        {6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},  {7, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
        {8, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},  {9, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},
        {10, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, {11, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
        {12, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {13, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},
        {14, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, {15, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
        {16, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {17, 0, 0, 9, HYPER_THREADING_PROC, 8, -1},
        {18, 0, 0, 0, MAIN_CORE_PROC, 0, -1},       {19, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
        {20, 0, 0, 2, MAIN_CORE_PROC, 2, -1},       {21, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
        {22, 0, 0, 4, MAIN_CORE_PROC, 4, -1},       {23, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
        {24, 0, 0, 6, MAIN_CORE_PROC, 6, -1},       {25, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
        {26, 0, 0, 8, MAIN_CORE_PROC, 8, -1},       {27, 0, 0, 9, MAIN_CORE_PROC, 9, -1},
        {28, 0, 0, 10, MAIN_CORE_PROC, 10, -1},     {29, 0, 0, 11, MAIN_CORE_PROC, 11, -1},
        {30, 0, 0, 12, MAIN_CORE_PROC, 12, -1},     {31, 0, 0, 13, MAIN_CORE_PROC, 13, -1},
        {32, 0, 0, 14, MAIN_CORE_PROC, 14, -1},     {33, 0, 0, 15, MAIN_CORE_PROC, 15, -1},
        {34, 0, 0, 16, MAIN_CORE_PROC, 16, -1},     {35, 0, 0, 17, MAIN_CORE_PROC, 17, -1},
    },
    {{1, MAIN_CORE_PROC, 18, 0, 0}, {1, HYPER_THREADING_PROC, 18, 0, 0}},
    {
        {18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35},
        {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17},
    },
    NOT_USED,
};
// other plugin reserved 2 threads
LinuxCpuReserveTestCase _1socket_18cores_hyper_plugin_reserve_2threads = {
    36,
    1,
    {{36, 18, 0, 0, 18, 0, 0}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},  {1, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},
        {2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},  {3, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},
        {4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},  {5, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},
        {6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},  {7, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},
        {8, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},  {9, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},
        {10, 0, 0, 5, HYPER_THREADING_PROC, 5, -1}, {11, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},
        {12, 0, 0, 6, HYPER_THREADING_PROC, 6, -1}, {13, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},
        {14, 0, 0, 7, HYPER_THREADING_PROC, 7, -1}, {15, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},
        {16, 0, 0, 8, HYPER_THREADING_PROC, 8, -1}, {17, 0, 0, 9, HYPER_THREADING_PROC, 8, -1},
        {18, 0, 0, 0, MAIN_CORE_PROC, 0, CPU_USED}, {19, 0, 0, 1, MAIN_CORE_PROC, 1, CPU_USED},
        {20, 0, 0, 2, MAIN_CORE_PROC, 2, -1},       {21, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
        {22, 0, 0, 4, MAIN_CORE_PROC, 4, -1},       {23, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
        {24, 0, 0, 6, MAIN_CORE_PROC, 6, -1},       {25, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
        {26, 0, 0, 8, MAIN_CORE_PROC, 8, -1},       {27, 0, 0, 9, MAIN_CORE_PROC, 9, -1},
        {28, 0, 0, 10, MAIN_CORE_PROC, 10, -1},     {29, 0, 0, 11, MAIN_CORE_PROC, 11, -1},
        {30, 0, 0, 12, MAIN_CORE_PROC, 12, -1},     {31, 0, 0, 13, MAIN_CORE_PROC, 13, -1},
        {32, 0, 0, 14, MAIN_CORE_PROC, 14, -1},     {33, 0, 0, 15, MAIN_CORE_PROC, 15, -1},
        {34, 0, 0, 16, MAIN_CORE_PROC, 16, -1},     {35, 0, 0, 17, MAIN_CORE_PROC, 17, -1},
    },
    {{16, MAIN_CORE_PROC, 1, 0, 0}, {16, HYPER_THREADING_PROC, 1, 0, 0}},
    {
        {20}, {21}, {22}, {23}, {24}, {25}, {26}, {27}, {28}, {29}, {30}, {31}, {32}, {33}, {34}, {35},
        {0},  {1},  {2},  {3},  {4},  {5},  {6},  {7},  {8},  {9},  {10}, {11}, {12}, {13}, {14}, {15},
    },
    NOT_USED,
};
LinuxCpuReserveTestCase _1socket_32cores_hyper_1streams = {
    32,
    1,
    {{32, 8, 16, 0, 8, 0, 0}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},   {1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
        {2, 0, 0, 1, HYPER_THREADING_PROC, 1, -1},   {3, 0, 0, 1, MAIN_CORE_PROC, 1, -1},
        {4, 0, 0, 2, HYPER_THREADING_PROC, 2, -1},   {5, 0, 0, 2, MAIN_CORE_PROC, 2, -1},
        {6, 0, 0, 3, HYPER_THREADING_PROC, 3, -1},   {7, 0, 0, 3, MAIN_CORE_PROC, 3, -1},
        {8, 0, 0, 4, HYPER_THREADING_PROC, 4, -1},   {9, 0, 0, 4, MAIN_CORE_PROC, 4, -1},
        {10, 0, 0, 5, HYPER_THREADING_PROC, 5, -1},  {11, 0, 0, 5, MAIN_CORE_PROC, 5, -1},
        {12, 0, 0, 6, HYPER_THREADING_PROC, 6, -1},  {13, 0, 0, 6, MAIN_CORE_PROC, 6, -1},
        {14, 0, 0, 7, HYPER_THREADING_PROC, 7, -1},  {15, 0, 0, 7, MAIN_CORE_PROC, 7, -1},
        {16, 0, 0, 8, EFFICIENT_CORE_PROC, 8, -1},   {17, 0, 0, 9, EFFICIENT_CORE_PROC, 8, -1},
        {18, 0, 0, 10, EFFICIENT_CORE_PROC, 8, -1},  {19, 0, 0, 11, EFFICIENT_CORE_PROC, 8, -1},
        {20, 0, 0, 12, EFFICIENT_CORE_PROC, 9, -1},  {21, 0, 0, 13, EFFICIENT_CORE_PROC, 9, -1},
        {22, 0, 0, 14, EFFICIENT_CORE_PROC, 9, -1},  {23, 0, 0, 15, EFFICIENT_CORE_PROC, 9, -1},
        {24, 0, 0, 16, EFFICIENT_CORE_PROC, 10, -1}, {25, 0, 0, 17, EFFICIENT_CORE_PROC, 10, -1},
        {26, 0, 0, 18, EFFICIENT_CORE_PROC, 10, -1}, {27, 0, 0, 19, EFFICIENT_CORE_PROC, 10, -1},
        {28, 0, 0, 20, EFFICIENT_CORE_PROC, 11, -1}, {29, 0, 0, 21, EFFICIENT_CORE_PROC, 11, -1},
        {30, 0, 0, 22, EFFICIENT_CORE_PROC, 11, -1}, {31, 0, 0, 23, EFFICIENT_CORE_PROC, 11, -1},
    },
    {{1, ALL_PROC, 24, 0, 0}, {0, MAIN_CORE_PROC, 8, 0, 0}, {0, EFFICIENT_CORE_PROC, 16, 0, 0}},
    {
        {1, 3, 5, 7, 9, 11, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31},
    },
    NOT_USED,
};

LinuxCpuReserveTestCase _1socket_22cores_MTL_1streams_6threads = {
    22,
    1,
    {{22, 6, 10, 0, 6, 0, 0}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},       {1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
        {2, 0, 0, 1, EFFICIENT_CORE_PROC, 1, -1},        {3, 0, 0, 2, EFFICIENT_CORE_PROC, 1, -1},
        {4, 0, 0, 3, EFFICIENT_CORE_PROC, 1, -1},        {5, 0, 0, 4, EFFICIENT_CORE_PROC, 1, -1},
        {6, 0, 0, 5, EFFICIENT_CORE_PROC, 2, -1},        {7, 0, 0, 6, EFFICIENT_CORE_PROC, 2, -1},
        {8, 0, 0, 7, EFFICIENT_CORE_PROC, 2, -1},        {9, 0, 0, 8, EFFICIENT_CORE_PROC, 2, -1},
        {10, 0, 0, 9, HYPER_THREADING_PROC, 3, -1},      {11, 0, 0, 9, MAIN_CORE_PROC, 3, -1},
        {12, 0, 0, 10, HYPER_THREADING_PROC, 4, -1},     {13, 0, 0, 10, MAIN_CORE_PROC, 4, -1},
        {14, 0, 0, 11, HYPER_THREADING_PROC, 5, -1},     {15, 0, 0, 11, MAIN_CORE_PROC, 5, -1},
        {16, 0, 0, 12, HYPER_THREADING_PROC, 6, -1},     {17, 0, 0, 12, MAIN_CORE_PROC, 6, -1},
        {18, 0, 0, 13, HYPER_THREADING_PROC, 7, -1},     {19, 0, 0, 13, MAIN_CORE_PROC, 7, -1},
        {20, 0, 0, 14, EFFICIENT_CORE_PROC, -100, -100}, {21, 0, 0, 15, EFFICIENT_CORE_PROC, -100, -100},
    },
    {{1, MAIN_CORE_PROC, 6, 0, 0}},
    {
        {1, 11, 13, 15, 17, 19},
    },
    NOT_USED,
};

LinuxCpuReserveTestCase _1socket_22cores_MTL_1streams_7threads = {
    22,
    1,
    {{22, 6, 10, 0, 6, 0, 0}},
    {
        {0, 0, 0, 0, HYPER_THREADING_PROC, 0, -1},       {1, 0, 0, 0, MAIN_CORE_PROC, 0, -1},
        {2, 0, 0, 1, EFFICIENT_CORE_PROC, 1, -1},        {3, 0, 0, 2, EFFICIENT_CORE_PROC, 1, -1},
        {4, 0, 0, 3, EFFICIENT_CORE_PROC, 1, -1},        {5, 0, 0, 4, EFFICIENT_CORE_PROC, 1, -1},
        {6, 0, 0, 5, EFFICIENT_CORE_PROC, 2, -1},        {7, 0, 0, 6, EFFICIENT_CORE_PROC, 2, -1},
        {8, 0, 0, 7, EFFICIENT_CORE_PROC, 2, -1},        {9, 0, 0, 8, EFFICIENT_CORE_PROC, 2, -1},
        {10, 0, 0, 9, HYPER_THREADING_PROC, 3, -1},      {11, 0, 0, 9, MAIN_CORE_PROC, 3, -1},
        {12, 0, 0, 10, HYPER_THREADING_PROC, 4, -1},     {13, 0, 0, 10, MAIN_CORE_PROC, 4, -1},
        {14, 0, 0, 11, HYPER_THREADING_PROC, 5, -1},     {15, 0, 0, 11, MAIN_CORE_PROC, 5, -1},
        {16, 0, 0, 12, HYPER_THREADING_PROC, 6, -1},     {17, 0, 0, 12, MAIN_CORE_PROC, 6, -1},
        {18, 0, 0, 13, HYPER_THREADING_PROC, 7, -1},     {19, 0, 0, 13, MAIN_CORE_PROC, 7, -1},
        {20, 0, 0, 14, EFFICIENT_CORE_PROC, -100, -100}, {21, 0, 0, 15, EFFICIENT_CORE_PROC, -100, -100},
    },
    {{1, ALL_PROC, 7, 0, 0}, {0, MAIN_CORE_PROC, 6, 0, 0}, {0, EFFICIENT_CORE_PROC, 1, 0, 0}},
    {
        {1, 2, 11, 13, 15, 17, 19},
    },
    NOT_USED,
};

TEST_P(LinuxCpuReserveTests, LinuxCpuReserve) {}

INSTANTIATE_TEST_SUITE_P(CPUReserve,
                         LinuxCpuReserveTests,
                         testing::Values(_2sockets_72cores_hyper_36streams,
                                         _2sockets_72cores_hyper_2streams,
                                         _2sockets_72cores_hyper_7streams,
                                         _2sockets_72cores_hyper_8streams,
                                         _2sockets_72cores_hyper_9streams,
                                         _2sockets_72cores_hyper_3streams,
                                         _2sockets_72cores_hyper_1streams,
                                         _2sockets_72cores_hyper_5streams,
                                         _2sockets_72cores_hyper_3streams_plugin_reserve,
                                         _2sockets_104cores_2streams,
                                         _2sockets_104cores_1streams,
                                         _2sockets_20cores_hyper_20streams,
                                         _2sockets_20cores_hyper_4streams,
                                         _2sockets_20cores_hyper_5streams,
                                         _1socket_4cores_hyper_1streams,
                                         _1socket_4cores_hyper_4streams,
                                         _1socket_16cores_hyper_20streams,
                                         _1socket_16cores_hyper_1streams,
                                         _1socket_16cores_hyper_4streams,
                                         _1socket_16cores_hyper_4streams_ecoreonly,
                                         _1socket_18cores_hyper_1streams,
                                         _1socket_18cores_hyper_2streams,
                                         _1socket_18cores_hyper_plugin_reserve_2threads,
                                         _1socket_32cores_hyper_1streams,
                                         _1socket_22cores_MTL_1streams_6threads,
                                         _1socket_22cores_MTL_1streams_7threads));
#endif
}  // namespace
